每次登服务器都要翻 IP 和密码?SSH 密钥登录一次配好

举报
yd_272823509 发表于 2026/11/01 09:49:43 2026/11/01
【摘要】 自从开始用云服务器,我发现每次登录都要经历一遍同样的折磨:先翻聊天记录找 IP,再翻备忘录找密码,输错两次还会被暂时锁定。其实 SSH 本来就提供了更顺手的办法:密钥登录加一份本地 config 配置,配好一次之后,登录就只剩一条短命令。 第一:先弄清密钥登录到底在比对什么密码登录是「服务器问你知不知道密码」,密钥登录则是「你拿私钥证明你就是你」。本地生成一对密钥:公钥可以公开,相当于一把锁...

自从开始用云服务器,我发现每次登录都要经历一遍同样的折磨:先翻聊天记录找 IP,再翻备忘录找密码,输错两次还会被暂时锁定。其实 SSH 本来就提供了更顺手的办法:密钥登录加一份本地 config 配置,配好一次之后,登录就只剩一条短命令。

第一:先弄清密钥登录到底在比对什么

密码登录是「服务器问你知不知道密码」,密钥登录则是「你拿私钥证明你就是你」。本地生成一对密钥:公钥可以公开,相当于一把锁,放到服务器上;私钥只留在自己电脑里,相当于唯一的钥匙,登录时服务器用锁来验证钥匙对不对得上。生成只需要一条命令:

ssh-keygen -t ed25519

一路回车即可(也可以给私钥再设一个口令短语,多一层保护)。执行完,~/.ssh 目录里会多出 id_ed25519(私钥,绝不能外传,也不要发到任何网盘)和 id_ed25519.pub(公钥,可以随便发)。

第二:把公钥送上服务器

最省事的办法是 ssh-copy-id,它会自动把公钥追加到服务器的 ~/.ssh/authorized_keys 里:

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

这一步还需要用密码登录最后一次。完成后退出,再重新 ssh user@服务器IP,如果直接进去了、全程没问密码,说明配好了。万一没有 ssh-copy-id(比如在 Windows 上),手动把 .pub 文件里的那一行内容追加到服务器的 authorized_keys 末尾,效果完全一样,注意不要把原有内容覆盖掉。

第三:用 config 把「长串参数」缩成一个词

密钥搞定之后还有一个小毛病:服务器 IP 又长又难记,每次还要带 -p 指定端口、带用户名。~/.ssh/config 就是为这个准备的:

Host myserver
    HostName 203.0.113.10
    User ubuntu
    Port 22
    IdentityFile ~/.ssh/id_ed25519

保存之后,登录只需要:

ssh myserver

scp、sftp 同样认这个别名,传文件时写 scp 文件 myserver:~/ 就行。有两台、三台服务器就在 config 里多写几段,互不影响。两个提醒:一是 config 文件和私钥的权限别太松,chmod 600 ~/.ssh/id_ed25519 是好习惯,有些 SSH 版本遇到私钥权限过宽会直接拒绝使用;二是换电脑时要记得把私钥和 config 一起迁移过去,并妥善保管,私钥丢了就只能重新生成一对再把新公钥送上服务器。

小结

  • ssh-keygen -t ed25519 生成密钥对,私钥只留本地。
  • ssh-copy-id 把公钥送上服务器,之后免密登录。
  • ~/.ssh/config 给每台服务器起别名,IP、端口、用户名都不用再背。

服务器登录是每天都要重复很多次的小动作,把它从「翻记录加输密码」变成一条 ssh 别名,省下的不只是时间,还有被繁琐步骤打断思路的次数。

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

评论(0)

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

全部回复

上滑加载中

设置昵称

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

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

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