Linux服务器ssh密钥登录,禁用密码登录加固

很多刚接触Linux服务器的用户习惯用密码登录,但密码容易被暴力破解。
改用SSH密钥登录并禁用密码认证,能大幅提升安全性。
本文从生成密钥对开始,一步步带你完成配置,最后验证并禁用密码登录,适合零基础用户照着操作。

在本地生成密钥对

首先在你的电脑上生成一对密钥:私钥自己保管,公钥上传到服务器。
Windows用户可使用PowerShell或Git Bash,Mac和Linux用户直接打开终端。

执行以下命令(推荐使用ed25519算法,更安全且性能好):

ssh-keygen -t ed25519 -C "your_email@example.com"

按回车后,系统会提示保存路径,直接回车使用默认位置(例如~/.ssh/id_ed25519)。
接着设置一个密码短语(passphrase),可以留空,但建议设置以增加一层保护。
完成后会生成两个文件:id_ed25519(私钥)和id_ed25519.pub(公钥)。

注意:私钥绝不能泄露给他人,公钥可以随意分发。

将公钥上传到服务器

假设服务器IP是192.0.2.1,用户名为root,端口为22
你可以用ssh-copy-id命令自动上传公钥(如果本地支持):

ssh-copy-id -i ~/.ssh/id_ed25519.pub root@192.0.2.1

输入服务器密码后,公钥会被追加到服务器的~/.ssh/authorized_keys文件中。
如果ssh-copy-id不可用,可以手动复制:

  1. 查看公钥内容:cat ~/.ssh/id_ed25519.pub,复制输出。
  2. 登录服务器:ssh root@192.0.2.1(输入密码)。
  3. 创建.ssh目录并设置权限:
mkdir -p ~/.ssh
chmod 700 ~/.ssh
  1. 将公钥粘贴到authorized_keys文件:
echo "粘贴你的公钥内容" >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys

关键点.ssh目录权限必须是700,authorized_keys文件权限必须是600,否则SSH会拒绝使用密钥。

测试密钥登录

不要关闭当前服务器连接,新开一个终端窗口,尝试用密钥登录:

ssh -i ~/.ssh/id_ed25519 root@192.0.2.1

如果设置了密码短语,会提示输入;
否则直接登录成功。
此时应该不需要输入服务器密码。
如果仍然提示输入密码,说明公钥配置有误,请检查权限和文件路径。

务必确认密钥登录成功后再进行下一步,否则禁用密码后可能把自己锁在外面。

修改SSH配置禁用密码登录

确认密钥登录可用后,在服务器上编辑SSH配置文件:

sudo vi /etc/ssh/sshd_config

找到以下参数并修改(如果前面有#则去掉注释):

PubkeyAuthentication yes
PasswordAuthentication no
ChallengeResponseAuthentication no
UsePAM no

说明

  • PubkeyAuthentication yes:启用密钥认证。
  • PasswordAuthentication no:禁用密码认证。
  • ChallengeResponseAuthentication no:禁用挑战响应认证(某些系统需要)。
  • UsePAM no:如果不禁用PAM,密码登录可能仍然有效,建议关闭。

保存退出后,重启SSH服务:

sudo systemctl restart sshd

或者对于旧系统:

sudo service ssh restart

避坑提示:重启SSH服务不会断开当前已建立的连接,所以你可以保持当前会话,另开终端测试新连接。
如果配置错误导致无法连接,仍可通过当前会话修复。

验证加固效果与常见问题

新开一个终端,尝试用密码登录:

ssh root@192.0.2.1

此时应该直接提示Permission denied (publickey),说明密码登录已被禁用。
再用密钥登录应能正常进入。

如果遇到问题,检查以下方面:

  • 服务器防火墙是否放行SSH端口(默认22)。
  • sshd_config中是否有其他冲突配置,如AllowUsers限制。
  • 查看SSH日志:tail -f /var/log/auth.log(Debian/Ubuntu)或/var/log/secure(CentOS/RHEL),根据错误信息调整。

结论:成功禁用密码登录后,服务器只能通过密钥访问,暴力破解密码的攻击将完全失效。

需要保留密码登录作为备用吗?

如果担心密钥丢失,可以临时启用密码登录,但建议仅在紧急情况下使用,并尽快改回。
更安全的做法是备份私钥,并设置强密码短语。

修改端口后密钥登录失效?

如果更改了SSH端口,连接时需指定新端口:ssh -p 新端口 -i 私钥路径 用户@IP
同时确保防火墙放行新端口。

多用户如何管理?

每个用户独立管理自己的~/.ssh/authorized_keys
管理员可在sshd_config中通过AllowUsers限制可登录用户。

完成以上步骤后,你的Linux服务器SSH登录就完成了密钥加固。
记得定期备份私钥,并关注系统更新。

分享到:
上一篇
Linux系统基础运维,新手常用命令大全
下一篇
Linux服务器定时任务Crontab配置
1
系统公告

泽御云中秋国庆双节活动上线:新购8折,拼团3.99元起

尊敬的用户:
泽御云“月满中秋·礼贺国庆”双节活动现已开启,活动时间为2026年9月23日至10月10日。 活动期间可享以下福利:
1. 常规云服务器新购使用优惠码“泽御中秋国庆同乐”,符合条件的订单享8折优惠。
2. 香港精品云服务器5人拼团低至3.99元,部分4核4G套餐3人拼团年付388元,续费同价。
3. 新用户购买年付云服务器,符合活动规则可赠送2个月使用时长。
4. 老用户续费季度赠15天,续费年度赠2个月;活动期间升级配置免收配置迁移手续费。
5. 推荐好友成功下单,符合条件的推荐人可获赠7天服务器使用时长。
6. 活动期间享宕机补偿标准翻倍、简单网站迁移协助及技术工单优先处理权益。
温馨提示:优惠码不适用于拼团套餐、活动轻量产品、年付订单及续费订单;拼团套餐为独立特价活动,不与赠时类福利叠加。赠送时长不可折现、退款或跨账户转移,具体规则以活动页面说明为准。
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意