SSH 免密登录与安全加固速记:密钥、配置与排障

举报
yd_254170217 发表于 2026/11/07 12:47:19 2026/11/07
【摘要】 每天登录服务器都要输一遍密码,输错一次还要重来,时间久了既麻烦也不安全。更稳妥的做法是:先配好密钥免密登录,再把密码登录关掉,最后用权限和日志把口子守住。下面是一套可以直接照着做的速记。 一、生成密钥对在本地电脑上生成一对密钥,私钥自己留好,公钥放到服务器上:ssh-keygen -t ed25519 -C "my-laptop"ls -l ~/.ssh/生成时会问保存位置和口令,直接回车用...

每天登录服务器都要输一遍密码,输错一次还要重来,时间久了既麻烦也不安全。更稳妥的做法是:先配好密钥免密登录,再把密码登录关掉,最后用权限和日志把口子守住。下面是一套可以直接照着做的速记。

一、生成密钥对

在本地电脑上生成一对密钥,私钥自己留好,公钥放到服务器上:

ssh-keygen -t ed25519 -C "my-laptop"
ls -l ~/.ssh/

生成时会问保存位置和口令,直接回车用默认位置即可;如果电脑是多人共用,建议给私钥加一个口令,多一层保护。不要把私钥发给别人,也不要上传到代码仓库。

二、把公钥传到服务器

最省事的是用系统自带的命令,一行完成复制:

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

第二次登录如果不再要密码,说明免密已经生效。如果还提示输密码,先别急着改配置,往下看权限那一节,十有八九是权限问题。

三、服务端加固配置

免密生效后,就可以关掉密码登录。编辑服务端配置文件:

sudo vim /etc/ssh/sshd_config

把下面几项改成这样:

PubkeyAuthentication yes
PasswordAuthentication no
PermitRootLogin prohibit-password
Port 2222

改之前先检查语法再重载服务,避免把自己锁在门外:

sudo sshd -t
sudo systemctl reload sshd

注意:改端口后,登录时要加上 -p 2222,防火墙和安全组也要放行新端口。

四、权限不对,免密就失效

SSH 对权限很敏感,目录太开放会直接拒绝密钥登录。按下面这组权限修正:

chmod 700 ~
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
chmod 600 ~/.ssh/id_ed25519

同时确认文件属主是登录用户本人,而不是 root 或其他账号。改完再试一次登录,大多数“密钥明明对了却还要密码”的问题到这里就解决了。

五、登录失败的三步排障

遇到连不上,先分三步定位,不要凭感觉改配置:

ssh -v -p 2222 root@服务器IP
sudo tail -n 50 /var/log/auth.log
sudo systemctl status sshd

ssh -v 能看到协商到哪一步失败;auth.log 里常有 Authentication refused: bad ownership or modes 这样的明确提示;sshd 状态则能确认服务是不是真的在运行。按提示修权限、改端口或放行防火墙,一般都能快速恢复。

小结

记住一个顺序:生成密钥、传公钥、验证免密、关密码登录、修权限、看日志。做完这六步,登录既不用反复输密码,被暴力破解的风险也小得多。平时再定期换一次密钥,服务器登录这件事基本就不用操心了。

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

评论(0)

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

全部回复

上滑加载中

设置昵称

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

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

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