SSH 密钥登录入门:一次配置,告别密码登录

举报
vanseny 发表于 2026/11/01 09:18:31 2026/11/01
【摘要】 如果你经常用 SSH 登录远程服务器,一定经历过这样的场景:每次都要输入一长串密码,输错一次就得重来;密码还可能被暴力破解工具盯上。其实有一种更安全、更省事的办法:SSH 密钥登录。配置一次,之后登录不用再输密码,而且安全性比密码高得多。 密码登录有什么问题密码登录有两个天然短板。第一,密码是人能记住的东西,就意味着它不会太复杂,也就扛不住暴力破解——攻击者可以 24 小时不停地尝试常见密码...

如果你经常用 SSH 登录远程服务器,一定经历过这样的场景:每次都要输入一长串密码,输错一次就得重来;密码还可能被暴力破解工具盯上。其实有一种更安全、更省事的办法:SSH 密钥登录。配置一次,之后登录不用再输密码,而且安全性比密码高得多。

密码登录有什么问题

密码登录有两个天然短板。第一,密码是人能记住的东西,就意味着它不会太复杂,也就扛不住暴力破解——攻击者可以 24 小时不停地尝试常见密码。第二,密码需要在每次登录时通过网络传输验证,一旦泄露,任何人都能用它登录你的服务器。

密钥登录换了一个思路:不再靠“你知道什么”来验证身份,而是靠“你拥有什么”。你手里有一把私钥,服务器上放着对应的公钥,只有两者配对成功才能登录。私钥从不离开你的电脑,攻击者就算拿到公钥也毫无用处。

一对密钥是怎么工作的

可以把这对密钥想象成一把锁和一把钥匙。公钥是锁,你把它装到服务器上,公开给谁看都没关系;私钥是钥匙,只留在你自己的电脑里,绝不能发给别人、传到网盘或者贴到聊天记录里。

登录时,服务器会出一道只有私钥能解的题目,你的电脑用私钥解开并作答,服务器验证通过就放行。整个过程私钥本身不会在网络上传输,这就是它比密码安全的原因。

三步完成配置

第一步,在本地生成密钥对。打开终端执行:

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

一路回车会使用默认路径和空口令。追求更高安全性的话,可以给私钥再设一个口令(passphrase),这样即使私钥文件被别人拿到,没有口令也用不了。生成后你会得到两个文件:~/.ssh/id_ed25519 是私钥,~/.ssh/id_ed25519.pub 是公钥。

第二步,把公钥传到服务器。最省事的办法是:

ssh-copy-id 用户名@服务器地址

它会把公钥追加到服务器的 ~/.ssh/authorized_keys 文件里,并自动处理好文件权限。如果你是第一次接触,也可以手动把 .pub 文件的内容复制过去,效果一样。

第三步,测试免密登录:

ssh 用户名@服务器地址

如果直接进了服务器而没有问你要密码,说明配置成功了。注意:第一次连接时系统会问你是否信任该主机的指纹,确认无误后输入 yes 即可。

配置好之后的两件小事

第一件,确认密钥登录生效后,可以考虑关闭服务器的密码登录。在服务器的 /etc/ssh/sshd_config 里把 PasswordAuthentication 改成 no,然后重启 sshd 服务。这样暴力破解密码的路就被彻底堵死了。不过改之前务必确认密钥登录已经可用,否则可能把自己锁在门外。

第二件,备份好私钥。私钥丢了就等于钥匙丢了,服务器就进不去了。可以把它加密备份到自己可信的位置,但千万不要把它上传到公开仓库、群聊或者任何不受信任的地方——公钥可以公开,私钥永远不能。

常见问题

密钥换了电脑怎么办?在新电脑上重新生成一对密钥,再把新公钥追加到服务器的 authorized_keys 里即可,旧的密钥对也可以保留或删除。

一台电脑要登录多台服务器怎么办?同一对密钥可以用在多台服务器上,每台服务器都放上同一个公钥就行。也可以为不同服务器生成不同的密钥,用 ~/.ssh/config 文件分别指定。

私钥设了口令,每次登录还是要输口令,岂不是没省事?可以用 ssh-agent 代理:执行 ssh-add ~/.ssh/id_ed25519 后,在本次会话内只需输入一次口令,后续登录就都不用再输了。

小结

SSH 密钥登录的配置只需要几分钟:本地生成密钥对、把公钥传到服务器、测试登录。换来的却是每天登录时省下的无数次密码输入,以及一道密码登录给不了的安全防线。如果你还在用密码登录服务器,今天就可以花十分钟把它换掉。

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

评论(0)

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

全部回复

上滑加载中

设置昵称

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

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

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