SSH 免密登录:三条命令告别反复输密码

举报
yd_271493268 发表于 2026/10/24 13:25:12 2026/10/24
【摘要】 每次 ssh 连服务器都要输一遍密码,输错三次还被锁定——这日子我过够了。其实 SSH 早就支持"免密登录":配一次,以后连服务器就像开自己家门,直接进。 先理解:钥匙和锁免密登录的本质是"钥匙开锁":你在自己电脑上生成一对钥匙:私钥(自己留着,谁也别给)+ 公钥(可以随便发)把公钥放到服务器上,相当于给服务器装了一把"只认你钥匙的锁"以后连接时,服务器用公钥出题,只有你的私钥能答对——答对...

每次 ssh 连服务器都要输一遍密码,输错三次还被锁定——这日子我过够了。其实 SSH 早就支持"免密登录":配一次,以后连服务器就像开自己家门,直接进。

先理解:钥匙和锁

免密登录的本质是"钥匙开锁":

  • 你在自己电脑上生成一对钥匙:私钥(自己留着,谁也别给)+ 公钥(可以随便发)
  • 把公钥放到服务器上,相当于给服务器装了一把"只认你钥匙的锁"
  • 以后连接时,服务器用公钥出题,只有你的私钥能答对——答对了就放行,不用密码

三步配好

第 1 步:在自己电脑上生成钥匙对

ssh-keygen -t ed25519 -C "my-laptop"

一路回车用默认设置就行。完成后得到两个文件:~/.ssh/id_ed25519(私钥,绝不外传)和 ~/.ssh/id_ed25519.pub(公钥)。

第 2 步:把公钥送到服务器上

ssh-copy-id user@服务器IP

这条命令会让你最后输一次密码,然后自动把公钥追加到服务器的 ~/.ssh/authorized_keys 里。

第 3 步:验证

ssh user@服务器IP

如果直接进去了,一次密码都没问——成了。

两个常见坑

坑 1:权限太开放会被 SSH 拒绝。 服务器端这三个路径的权限必须收紧,否则 SSH 会觉得不安全而直接无视你的钥匙:

chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

坑 2:ssh-copy-id 不可用(比如某些精简系统)。 手动复制也行:

# 在自己电脑上看公钥内容,复制整行
cat ~/.ssh/id_ed25519.pub
# 在服务器上追加进去
echo "粘贴的那一行" >> ~/.ssh/authorized_keys

进阶:给常用服务器起个短名

服务器多了,IP 记不住?在自己电脑的 ~/.ssh/config 里写:

Host myserver
    HostName 1.2.3.4
    User ubuntu
    Port 22

以后 ssh myserver 就行,IP、用户名、端口全省了。配合免密登录,连服务器变成一件没有摩擦的事。

一句话总结

ssh-keygen 生成钥匙 → ssh-copy-id 把公钥送上服务器 → 以后免密直连。私钥是你的命根子,只留在自己电脑上;公钥随便发,它只能开锁不能配钥匙。

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

评论(0)

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

全部回复

上滑加载中

设置昵称

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

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

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