SSH 免密登录:一次配置,告别每次输密码

举报
yd_243433958 发表于 2026/11/11 13:06:34 2026/11/11
【摘要】 SSH 免密登录:一次配置,告别每次输密码每次连服务器都要输一遍密码,输错还得重来;写脚本批量操作时更是处处卡壳。SSH 密钥登录就是为了解决这个问题:配置一次,之后连接不再输密码,既方便,安全性也比弱口令高得多。 密钥登录是怎么回事简单说,就是在本机生成一对密钥:私钥自己留着,公钥放到服务器上。连接时服务器用公钥出一道“只有持有私钥的人才能解开”的题目,本机用私钥答对即可登录,全程不需要...

SSH 免密登录:一次配置,告别每次输密码

每次连服务器都要输一遍密码,输错还得重来;写脚本批量操作时更是处处卡壳。SSH 密钥登录就是为了解决这个问题:配置一次,之后连接不再输密码,既方便,安全性也比弱口令高得多。

密钥登录是怎么回事

简单说,就是在本机生成一对密钥:私钥自己留着,公钥放到服务器上。连接时服务器用公钥出一道“只有持有私钥的人才能解开”的题目,本机用私钥答对即可登录,全程不需要把密码发到网上。私钥相当于一把不能离身的钥匙,公钥相当于可以公开张贴的锁。

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

打开终端,执行:

ssh-keygen -t ed25519 -C "你的邮箱"

一路回车使用默认路径即可。命令会在 ~/.ssh/ 下生成两个文件:id_ed25519 是私钥,id_ed25519.pub 是公钥。生成时会被问要不要给私钥再设一个口令(passphrase):设了更安全,但每次使用仍需输入这句口令;如果目标就是彻底免密,直接回车留空。

注意:私钥文件绝不能发给别人,也不要上传到代码仓库或网盘。泄露后要立即在服务器上删除对应的公钥并重新生成。

第二步:把公钥装到服务器上

最省事的办法是用 ssh-copy-id:

ssh-copy-id -i ~/.ssh/id_ed25519.pub root@服务器IP

它会把公钥追加到服务器的 ~/.ssh/authorized_keys 里,并自动处理好文件权限。执行时需要输一次服务器密码——这是最后一次为这件事输密码。

如果 ssh-copy-id 不可用,也可以手动操作:把 id_ed25519.pub 的内容复制出来,在服务器上执行 mkdir -p ~/.ssh && echo "公钥内容" >> ~/.ssh/authorized_keys,再用 chmod 700 ~/.ssh 和 chmod 600 ~/.ssh/authorized_keys 把权限收紧。权限太松时 SSH 会直接拒绝密钥登录,这是常见坑。

第三步:验证免密登录

ssh root@服务器IP

如果直接进了命令行,没有任何密码提示,配置就成功了。建议先别急着关掉当前已登录的窗口:新开一个窗口验证,确认新方式可用,再动原来的配置。万一配错了,还有退路。

进阶:关掉密码登录更安全

确认密钥登录稳定后,可以在服务器上把密码登录关掉,让暴力猜密码的扫描彻底失效。编辑 /etc/ssh/sshd_config,把 PasswordAuthentication 改成 no,然后重启 SSH 服务:

systemctl reload sshd

改之前务必确认:第一,密钥登录已验证通过;第二,服务器还有别的进服务器的办法(比如云厂商的控制台终端)。两者缺一不可,否则可能把自己锁在门外。

一个容易踩的坑:旧算法密钥被拒

较新的 OpenSSH 默认不再接受基于 SHA-1 签名的旧 RSA 密钥。如果手头是很久以前生成的 RSA 密钥,登录时可能莫名失败。解决办法有两个:重新生成一对 ed25519 密钥(推荐),或者在服务器的 sshd 配置里显式允许 PubkeyAcceptedAlgorithms +ssh-rsa。前者一劳永逸,后者只是过渡。

日常使用小技巧

给常用服务器起个别名,写进本机 ~/.ssh/config:

Host myserver
    HostName 139.159.226.72
    User root
    IdentityFile ~/.ssh/id_ed25519

之后 ssh myserver 就能直连,连 IP 都不用记。多台服务器、多把密钥时,逐个写 Host 段落管理,比每次翻笔记找 IP 可靠得多。

密钥登录看着步骤多,实际十分钟就能配完。配好之后,日常连服务器、传文件、跑自动化脚本都不再被密码打断,而服务器反而更安全——这是一笔很划算的投入。

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

评论(0)

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

全部回复

上滑加载中

设置昵称

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

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

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