第一次用 SSH 密钥登录云服务器:告别密码登录的实战记录

举报
yd_229851404 发表于 2026/11/09 06:07:57 2026/11/09
【摘要】 刚开始管理云服务器时,我每次登录都要输一遍密码,密码又长又难记,输错一次就得重来。后来换成 SSH 密钥登录,第一次配置花了十几分钟,之后登录就是一条命令的事,连密码都不用输。这篇记录就是我第一次配密钥登录的完整过程,新手照着做一般不会踩坑。 一、为什么换成密钥登录密码登录有两个麻烦:一是密码要记、要定期换,输错还会被锁;二是密码可能被暴力猜解。密钥登录用一对密钥代替密码:私钥留在自己电脑上...

刚开始管理云服务器时,我每次登录都要输一遍密码,密码又长又难记,输错一次就得重来。后来换成 SSH 密钥登录,第一次配置花了十几分钟,之后登录就是一条命令的事,连密码都不用输。这篇记录就是我第一次配密钥登录的完整过程,新手照着做一般不会踩坑。

一、为什么换成密钥登录

密码登录有两个麻烦:一是密码要记、要定期换,输错还会被锁;二是密码可能被暴力猜解。密钥登录用一对密钥代替密码:私钥留在自己电脑上,公钥放到服务器上。登录时服务器用公钥验证你的私钥,私钥不联网传输,安全性更高,也更省事。对只有一两台服务器的新手来说,这一步值得早点做。

二、在自己电脑上生成密钥对

打开本地终端,执行:

ssh-keygen -t ed25519 -C "my-server-key"

一路回车会用默认路径和空口令,生成 ~/.ssh/id_ed25519(私钥)和 ~/.ssh/id_ed25519.pub(公钥)。如果提示文件已存在,说明以前生成过,先别覆盖,确认那对密钥还能用再决定。私钥相当于你家的钥匙,千万不要发给别人,也不要传到代码仓库里。

三、把公钥放到服务器上

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

ssh-copy-id root@服务器IP

它会把公钥追加到服务器的 ~/.ssh/authorized_keys 里,并自动处理权限。如果没有这个命令,也可以手动复制:先在服务器上建目录并改好权限,再把公钥内容粘贴进去:

mkdir -p ~/.ssh
chmod 700 ~/.ssh
echo "公钥内容" >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys

这里的权限很关键:目录 700、文件 600,太宽松服务器会直接拒绝密钥登录。

四、验证免密登录,排查常见报错

配置好后新开一个终端试试:

ssh root@服务器IP

能直接进去就成功了。如果看到 Permission denied (publickey),先别急着重装,按这个顺序查:第一,确认公钥真的写进了服务器的 authorized_keys,有没有多换行或少字符;第二,检查 .ssh 目录和文件的权限是不是 700 和 600;第三,确认服务器的 /etc/ssh/sshd_config 里 PubkeyAuthentication 是 yes,改完要重启 sshd 服务。还可以用 ssh -v root@服务器IP 看详细日志,它会告诉你到底卡在哪一步。

五、两个让日常使用更顺手的习惯

第一个是写一份 SSH 配置。在本地 ~/.ssh/config 里加几行:

Host myserver
    HostName 服务器IP
    User root
    IdentityFile ~/.ssh/id_ed25519

以后登录只要敲 ssh myserver,IP 和用户名都不用再输。

第二个是等密钥登录稳定用几天后,再考虑关闭密码登录,把 PasswordAuthentication 改成 no 并重启服务。改之前一定确认两件事:密钥登录已经能用,并且当前还有一个已经登录的会话没断开,万一改错了还能进去改回来。

小结

密钥登录就三步:本地生成密钥对、把公钥放到服务器、验证免密登录。最容易踩的坑不是命令本身,而是文件权限和配置文件里的开关。配好之后,登录省事了,服务器也更安全,这是一次投入、长期受益的设置。如果你还在每次输密码登录,不妨今天就花十几分钟换成密钥登录。

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

评论(0)

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

全部回复

上滑加载中

设置昵称

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

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

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