用 SSH 密钥免密登录服务器:从生成到禁密码登录

举报
yd_28502004 发表于 2026/10/31 11:37:07 2026/10/31
【摘要】 每次登录服务器都要输一遍密码,又慢又容易被暴力破解。SSH 密钥登录可以解决这两个问题:本地生成一对密钥,把公钥放到服务器上,之后登录不用输密码,安全性反而更高。生成密钥对在本地执行:ssh-keygen -t ed25519 -C “my-laptop”一路回车会生成 ~/.ssh/id_ed25519(私钥)和 ~/.ssh/id_ed25519.pub(公钥)。私钥相当于身份证原件,绝...

每次登录服务器都要输一遍密码,又慢又容易被暴力破解。SSH 密钥登录可以解决这两个问题:本地生成一对密钥,把公钥放到服务器上,之后登录不用输密码,安全性反而更高。

  1. 生成密钥对
    在本地执行:ssh-keygen -t ed25519 -C “my-laptop”
    一路回车会生成 ~/.ssh/id_ed25519(私钥)和 ~/.ssh/id_ed25519.pub(公钥)。私钥相当于身份证原件,绝不能发给别人、不能传到公开仓库;公钥相当于锁,可以随便贴到服务器上。
    如果提示已存在同名密钥,先别覆盖——覆盖会让原来用这把密钥登录的服务器全部登不上。改名生成即可,例如 -f ~/.ssh/id_ed25519_vps。
  2. 把公钥传到服务器
    最省事的是:ssh-copy-id -i ~/.ssh/id_ed25519.pub root@服务器IP
    它会把公钥追加到服务器的 ~/.ssh/authorized_keys 里,并自动把目录和文件权限修好。手动贴也可以,但要注意两点:~/.ssh 目录权限应为 700,authorized_keys 应为 600,权限太松时 SSH 会直接拒绝密钥登录。
  3. 验证免密登录
    ssh root@服务器IP
    能直接进入、不再问密码,说明密钥登录已生效。如果仍问密码,先看两处:本地有没有用对密钥文件(可用 -i 指定),服务器端 authorized_keys 里是不是多了一个换行或少了一行。
  4. 进阶:禁掉密码登录
    密钥能用之后,建议关掉密码登录,暴力破解就无从下手。编辑服务器的 /etc/ssh/sshd_config:
    PasswordAuthentication no
    PubkeyAuthentication yes
    改完先别急着断开:新开一个终端窗口,用密钥再登一次,确认能进,再重载服务:sudo systemctl reload sshd
    这一步的顺序很关键——先验证新方式可用,再关旧方式。顺序反了,一旦密钥有问题,自己也会被锁在门外。
  5. 几个顺手习惯
    一台设备一把密钥,换电脑就重新生成,不要把私钥到处拷贝;私钥可以设一个 passphrase,丢了也不至于立刻被用;定期检查 authorized_keys,不认识的公钥及时删掉。
    先生成、再传公钥、验证通过后再禁密码——按这个顺序走一次,之后登录服务器就是一条命令的事,又快又稳。
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

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

全部回复

上滑加载中

设置昵称

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

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

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