SSH 免密登录:告别每次输密码

举报
yd_265618206 发表于 2026/10/29 11:11:44 2026/10/29
【摘要】 SSH 免密登录:告别每次输密码每次登录服务器都要输一遍密码,输错还得重来——如果你每天都要连好几台机器,这就是最烦人的重复劳动。SSH 密钥登录一次配置好,之后登录不用再输密码,还比密码更安全。 密码登录为什么又烦又不安全密码要靠人记住,越复杂越容易忘,越简单越容易被猜。更麻烦的是,暴露在公网上的服务器每天都会被自动化程序扫描、尝试爆破弱密码。密钥登录换了一套思路:你手里拿一把私钥,服务...

SSH 免密登录:告别每次输密码

每次登录服务器都要输一遍密码,输错还得重来——如果你每天都要连好几台机器,这就是最烦人的重复劳动。SSH 密钥登录一次配置好,之后登录不用再输密码,还比密码更安全。

密码登录为什么又烦又不安全

密码要靠人记住,越复杂越容易忘,越简单越容易被猜。更麻烦的是,暴露在公网上的服务器每天都会被自动化程序扫描、尝试爆破弱密码。密钥登录换了一套思路:你手里拿一把私钥,服务器上只放一把对应的公钥,对不上就进不去,爆破密码那套打法直接失效。

三步配好密钥登录

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

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

一路回车会生成 ~/.ssh/id_ed25519(私钥,自己留好)和 ~/.ssh/id_ed25519.pub(公钥,可以公开)。如果想多一层保险,可以给私钥设一个 passphrase,登录时只解这一次,配合 ssh-agent 后续也不用反复输。

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

ssh-copy-id user@server_ip

这条命令会把公钥追加到服务器的 ~/.ssh/authorized_keys 里。传完先别急着关当前窗口,另开一个终端试一次免密登录,确认能进再说。

第三步,确认免密登录成功后,可以收紧服务器配置。编辑 /etc/ssh/sshd_config,把 PasswordAuthentication 改成 no,再重启 sshd 服务:

sudo systemctl restart sshd

改之前务必确认密钥登录已经通了,否则把自己锁在门外只能走控制台救援,得不偿失。

几个容易踩的坑

第一个是权限。~/.ssh 目录必须是 700,authorized_keys 必须是 600,权限太松 sshd 会直接拒绝密钥登录,这是最常见的新手翻车点,一条 chmod 就能修好。

第二个是私钥千万别外传。公钥可以随便贴,私钥只留在自己的机器上,不要发到聊天群、不要传到代码仓库、不要放进共享网盘。私钥一旦泄露,等于家门钥匙丢了,要立刻在所有服务器上删掉对应的公钥并重新生成。

第三个是多台机器的管理。一台本地机器配一把密钥、所有服务器放同一把公钥最省事;如果机器很多,可以给每台设备单独生成密钥,出了问题只吊销那一把,影响面最小。

小结

生成密钥、传公钥、验证通过后再关密码登录,三步下来,日常登录从输密码变成一回车的事,安全性反而上了一个台阶。这是最值得先配好的服务器基本功,下次新开一台机器,照着这个流程走一遍就行。

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

评论(0)

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

全部回复

上滑加载中

设置昵称

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

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

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