SSH 免密登录:告别每次输密码
SSH 免密登录:告别每次输密码
每次登录服务器都要输一遍密码,输错还得重来——如果你每天都要连好几台机器,这就是最烦人的重复劳动。SSH 密钥登录一次配置好,之后登录不用再输密码,还比密码更安全。
密码登录为什么又烦又不安全
密码要靠人记住,越复杂越容易忘,越简单越容易被猜。更麻烦的是,暴露在公网上的服务器每天都会被自动化程序扫描、尝试爆破弱密码。密钥登录换了一套思路:你手里拿一把私钥,服务器上只放一把对应的公钥,对不上就进不去,爆破密码那套打法直接失效。
三步配好密钥登录
第一步,在本地生成一对密钥:
ssh-keygen -t ed25519 -C "your_email@example.com"
一路回车会生成 ~/.ssh/id_ed25519(私钥,自己留好)和 ~/.ssh/id_ed25519.pub(公钥,可以公开)。如果想多一层保险,可以给私钥设一个 passphrase,登录时只解这一次,配合 ssh-agent 后续也不用反复输。
第二步,把公钥传到服务器:
ssh-copy-id user@server_ip
这条命令会把公钥追加到服务器的 ~/.ssh/authorized_keys 里。传完先别急着关当前窗口,另开一个终端试一次免密登录,确认能进再说。
第三步,确认免密登录成功后,可以收紧服务器配置。编辑 /etc/ssh/sshd_config,把 PasswordAuthentication 改成 no,再重启 sshd 服务:
sudo systemctl restart sshd
改之前务必确认密钥登录已经通了,否则把自己锁在门外只能走控制台救援,得不偿失。
几个容易踩的坑
第一个是权限。~/.ssh 目录必须是 700,authorized_keys 必须是 600,权限太松 sshd 会直接拒绝密钥登录,这是最常见的新手翻车点,一条 chmod 就能修好。
第二个是私钥千万别外传。公钥可以随便贴,私钥只留在自己的机器上,不要发到聊天群、不要传到代码仓库、不要放进共享网盘。私钥一旦泄露,等于家门钥匙丢了,要立刻在所有服务器上删掉对应的公钥并重新生成。
第三个是多台机器的管理。一台本地机器配一把密钥、所有服务器放同一把公钥最省事;如果机器很多,可以给每台设备单独生成密钥,出了问题只吊销那一把,影响面最小。
小结
生成密钥、传公钥、验证通过后再关密码登录,三步下来,日常登录从输密码变成一回车的事,安全性反而上了一个台阶。这是最值得先配好的服务器基本功,下次新开一台机器,照着这个流程走一遍就行。
- 点赞
- 收藏
- 关注作者
评论(0)