SSH 免密登录一次配好:密钥生成、权限要求与四个常见踩坑

举报
yd_259907061 发表于 2026/10/30 00:04:25 2026/10/30
【摘要】 每次连服务器都输密码既麻烦又不安全。SSH 免密登录配置只需三步,但权限设错一个字符就会失效,而且报错还很隐晦。这篇一次讲清。三步配置1. 本地生成密钥对:ssh-keygen -t ed25519(默认存到 ~/.ssh/,一路回车即可);2. 把公钥传到服务器:ssh-copy-id user@server-ip(Windows 可手动把公钥内容追加到服务器的 ~/.ssh/author...

每次连服务器都输密码既麻烦又不安全。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 是最好的老师。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。