SSH 免密登录一次配好:密钥生成、权限要求与四个常见踩坑
每次连服务器都输密码既麻烦又不安全。SSH 免密登录配置只需三步,但权限设错一个字符就会失效,而且报错还很隐晦。这篇一次讲清。
三步配置
1. 本地生成密钥对:ssh-keygen -t ed25519(默认存到 ~/.ssh/,一路回车即可);
2. 把公钥传到服务器:ssh-copy-id user@server-ip(Windows 可手动把公钥内容追加到服务器的 ~/.ssh/authorized_keys);
3. 测试:ssh user@server-ip,不再要密码即成功。
失效时按这四点查
1. 权限问题(最常见):服务器上 ~/.ssh 必须 700,authorized_keys 必须 600,家目录不能 group/other 可写(755 以内)。权限过宽 sshd 会直接拒用公钥,且默认不提示原因;
2. SELinux 上下文:CentOS 系统上文件权限对了还不行时,执行 restorecon -Rv ~/.ssh;
3. sshd 配置:确认 /etc/ssh/sshd_config 里 PubkeyAuthentication yes 且未被 AllowUsers 限制,改完 systemctl reload sshd;
4. 调试利器:客户端加 -v 看协商过程:ssh -v user@ip,服务器端看 /var/log/secure 或 journalctl -u sshd。
安全提醒:配置成功后建议在 sshd_config 中把 PasswordAuthentication 设为 no 并 reload,只留密钥登录,能挡住绝大多数暴力破解。id_rsa/ed25519 私钥文件本身也要保管好,泄露等同于交出服务器。
一句话总结:三步配好,失效先查权限(700/600),再查 SELinux 和 sshd 配置,-v 是最好的老师。
- 点赞
- 收藏
- 关注作者
评论(0)