SSH 免密登录入门:三分钟配好 ssh-keygen

举报
yd_226584033 发表于 2026/10/28 08:04:46 2026/10/28
【摘要】 做云开发和运维,每天要ssh登录几十次服务器,如果每次都输密码,既麻烦也不安全。这篇文章用三分钟带你配好SSH免密登录,一劳永逸。一、为什么要免密登录除了省去输密码的麻烦,密钥登录其实比密码更安全:密码可以被暴力猜测,而密钥对基于非对称加密,私钥永远不离开你的电脑,服务器上只放公钥,即使服务器被攻破,攻击者也拿不到你的私钥。二、三步搞定第一步,在本机生成密钥对:ssh-keygen -t e...

做云开发和运维,每天要ssh登录几十次服务器,如果每次都输密码,既麻烦也不安全。这篇文章用三分钟带你配好SSH免密登录,一劳永逸。

一、为什么要免密登录

除了省去输密码的麻烦,密钥登录其实比密码更安全:密码可以被暴力猜测,而密钥对基于非对称加密,私钥永远不离开你的电脑,服务器上只放公钥,即使服务器被攻破,攻击者也拿不到你的私钥。

二、三步搞定

第一步,在本机生成密钥对:

ssh-keygen -t ed25519 -C "your_email@example.com"

一路回车即可(也可以设置私钥口令,更安全)。ed25519算法比传统RSA更短更快,推荐使用。生成的密钥在 ~/.ssh/id_ed25519(私钥)和 ~/.ssh/id_ed25519.pub(公钥)。

第二步,把公钥传到服务器:

ssh-copy-id user@your-server-ip

这条命令会把你的公钥追加到服务器的 ~/.ssh/authorized_keys 文件里。如果没有ssh-copy-id(比如部分Windows环境),手动把公钥内容粘贴到该文件也可以。

第三步,验证:再执行 ssh user@your-server-ip,不输密码直接进入,说明配置成功。

三、常见坑

1. 权限问题:服务器上 ~/.ssh 目录权限必须是700,authorized_keys 必须是600,权限太开放会导致密钥登录静默失败。用 chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys 修复。

2. SELinux 语境问题(CentOS系):必要时执行 restorecon -r ~/.ssh。

3. 多台服务器:可以复用同一个公钥,也可以为每台服务器生成独立密钥,在 ~/.ssh/config 里用 Host 别名管理,配合 IdentityFile 指定不同私钥。

四、进阶:关闭密码登录

确认所有常用机器都能密钥登录后,建议在服务器 /etc/ssh/sshd_config 里设置 PasswordAuthentication no 并重启 sshd,从根上杜绝暴力破解。注意改之前务必保持当前会话不断开,并留一个备用登录方式,避免把自己锁在门外。

总结:ssh-keygen 生成密钥、ssh-copy-id 分发公钥、收尾收紧 sshd 配置,三步之后你的日常登录体验和安全水平都会上一个台阶。

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

评论(0)

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

全部回复

上滑加载中

设置昵称

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

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

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