SSH密钥登录禁用密码防暴力破解:SSH密钥登录配置指南

很多新手站长买了云服务器后,默认使用密码登录 SSH,每天被无数扫描工具暴力破解,迟早会出事。
换成 SSH 密钥登录并彻底关掉密码认证,是目前最主流的防暴力破解手段。
本文从零开始,带你完成这一配置,每一步都附上命令和解释,跟着做就行。

本地生成密钥对

首先在你的本地电脑(不是服务器)上生成一对加密钥匙:私钥自己保留,公钥放到服务器上。

打开本地终端(Linux/Mac 直接开终端,Windows 推荐用 Git Bash 或 PowerShell),输入:

ssh-keygen -t ed25519 -C "你的邮箱或备注"

-t ed25519 指定加密算法,比传统 RSA 更安全且速度快。
按提示选择存放路径(默认 ~/.ssh/id_ed25519)和设置私钥密码(可以直接回车跳过,但建议设一个方便记忆的)。
执行完成后,本地 ~/.ssh/ 目录下会出现两个文件:

  • id_ed25519 —— 你的私钥,必须保管好,不要外传
  • id_ed25519.pub —— 公钥,可以公开,待会要上传到服务器

将公钥上传到服务器

现在把公钥内容复制到服务器上。
最简单的方法是使用 ssh-copy-id 命令:

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

输入一次当前密码后,工具会自动把公钥追加到服务器 ~/.ssh/authorized_keys 文件里。
如果你服务器默认禁止 root 登录,请先用普通用户执行,再手动切换。

如果 ssh-copy-id 不可用,手动操作也行:登录服务器后执行以下命令:

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

注意公钥内容必须是一整行,从 ssh-ed25519 开始到末尾,不能换行。

测试密钥登录是否生效

在本地终端尝试用密钥登录:

ssh -i ~/.ssh/id_ed25519 root@你的服务器IP

如果一切正常,你会直接进入服务器,不再需要输入密码。
如果弹窗让你输入私钥保护密码,那是正常的,只要输入你生成时设置的密码即可。

禁用密码登录,仅保留密钥认证

确认密钥可以正常登录后,再关闭密码认证。
这一步是防暴力破解的关键,操作前务必确认密钥登录没问题,否则你会把自己锁在外面。

登录服务器,编辑 SSH 配置文件:

sudo nano /etc/ssh/sshd_config

找到以下几行,修改或添加成下面的值:

PasswordAuthentication no
ChallengeResponseAuthentication no
UsePAM no
PubkeyAuthentication yes

如果你使用的是云服务商的默认镜像,
可能 PasswordAuthentication 已被设为 yes,
直接改成 no。ChallengeResponseAuthentication 和 UsePAM 也建议禁用,
因为某些场景下它们会绕过密钥认证。

保存后重启 SSH 服务:

sudo systemctl restart sshd

避坑指南与常见问题

1. 重启 SSH 后登录失败怎么办?
立即用云服务商提供的 VNC 控制台或 IPMI 进入服务器,把刚才修改的配置恢复,重启 sshd。如果实在进不去,很多云服务商支持重置 SSH 配置的救援模式。

2. 私钥权限必须正确。
本地私钥文件权限不能太宽松,否则 SSH 会拒绝使用。修正方法:

chmod 600 ~/.ssh/id_ed25519

3. 对多个服务器用同一个密钥还是不同密钥?
建议每个服务器独立生成密钥,或至少为不同安全级别的服务器分开管理。

4. 忘记私钥保护密码怎么办?
只能重新生成一对密钥,重新上传公钥。没有找回途径。

验证配置是否生效

打开一个新的终端窗口,尝试用密码登录服务器:

ssh root@你的服务器IP -o PreferredAuthentications=password

如果提示 Permission denied (publickey) 而不是提示密码输入,说明密码认证已被成功禁用。

另外,也可以查看 SSH 日志确认安全状态:

sudo journalctl -u sshd | grep -i "Failed password"

如果没有任何输出,说明暴力破解已经无法通过密码攻击你的服务器了。

常见问题与解答

Q:我按步骤做了,但服务器仍要求输入密码?
A:检查公钥是否完整写入了 authorized_keys,且文件权限是 600,父目录 .ssh 是 700。也可能某些云平台默认安装了 fail2ban 或 pam_tally2 等工具,但密码认证本身没关闭,需确认配置。

Q:禁用密码后,还能用密码登录吗?
A:配置中已关闭所有密码相关选项,除非配置有误,否则不会再接受密码登录。若需要临时恢复密码登录(比如重置密钥),可登录 VNC 控制台再改回来。

Q:我用的不是 ed25519 算法,可以用 RSA 吗?
A:可以,但推荐至少 4096 位长度。命令改为 ssh-keygen -t rsa -b 4096,其他步骤完全相同。

完成以上配置后,你的服务器 SSH 安全等级会大幅提升。
建议定期备份私钥,并开启日志监控以便及时发现异常登录行为。

分享到:
上一篇
磁盘分区无损扩容住宅服务器硬盘:住宅服务器硬盘分区无损扩容实
下一篇
跨域API接口Nginx完整修复配置教程
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 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意