发布时间:2026-09-08 16:34 更新时间:2026-09-08 17:04 阅读量:1
只要把一台 Linux 服务器放到公网上,用不了多久,/var/log/secure 里就会出现大量来自世界各地的 SSH 登录尝试,机器人脚本日夜不停地在撞密码。面对这种常态化的暴力破解,靠"密码设复杂一点"远远不够,真正稳妥的做法是系统性地加固 SSH 这一入口。下面这套方案只涉及常规安全防护,属于每个运维都该掌握的基础动作。
第一步是把登录方式从"密码"切换为"密钥"。密钥认证的原理是本地生成一对公私钥,公钥放到服务器上,私钥留在自己电脑里;登录时服务器用公钥验证你的私钥签名,密码根本不出现在网络传输中,天然免疫密码爆破和中间人窃听。生成密钥推荐用更安全高效的 Ed25519 算法,当然也兼容传统的 RSA。在本机执行 ssh-keygen 后一路回车即可,把公钥推送到服务器用 ssh-copy-id 最省事:
ssh-keygen -t ed25519
ssh-copy-id -i ~/.ssh/id_ed25519.pub 用户@服务器IP
推送完成后先别急着关密码登录,务必新开一个终端用密钥方式登录验证一次,确认能正常进去,再修改 /etc/ssh/sshd_config 禁用密码认证。这里有个新手常犯的错误:改配置前不测试、改完就断开了现有连接,结果把自己锁在门外。修改任何 sshd 配置前都可以用 sshd -t 检查语法,重启前更要确保至少保留一条能用的登录通道。
第二步是收紧 sshd 的访问策略。公网服务器建议直接禁止 root 远程登录,日常用普通用户登录、需要管理员权限时再 sudo,这样即使某个普通用户账号泄露,攻击者拿到的也不是最高权限。在 sshd_config 中做如下设置并重启 sshd 服务即可生效:
PermitRootLogin no
PasswordAuthentication no
PubkeyAuthentication yes
MaxAuthTries 3
其中 MaxAuthTries 把单次连接允许的认证尝试压到 3 次,能显著提高暴力撞库的成本。还可以用 AllowUsers 把 SSH 登录用户白名单化,例如只允许 admin 和 deploy 两个账号登录,其他账号一律拒绝。如果出于合规或安全考虑想更换默认的 22 端口,需要同步调整 Port 配置、在防火墙里放行新端口,若系统开了 SELinux 还要用 semanage 更新端口标签,操作链条较长,建议在测试环境演练熟练后再上生产,否则极易造成远程失联。
第三步是给 SSH 加上"行为防火墙"。fail2ban 是经典的防暴力破解工具,它会扫描登录日志,发现同一来源 IP 在短时间内多次认证失败,就自动调用防火墙规则封禁该 IP 一段时间,解禁后再次尝试会继续触发封禁,让脚本爆破彻底失效。在主流发行版上安装后,默认 jail 通常已包含 sshd 规则,也可以用如下命令确认状态和手动封禁:
systemctl enable --now fail2ban
fail2ban-client status sshd
fail2ban-client set sshd banip 203.0.113.66
除了工具,别忘了把系统补丁打全、保持内核和 OpenSSH 版本更新,因为很多漏洞修复都依赖版本升级,旧的加固配置挡不住新披露的漏洞。安全加固是个层层叠加的过程:密钥认证挡住密码爆破,禁用 root 缩小提权面,收紧 sshd 参数降低攻击效率,fail2ban 自动封禁消灭持久骚扰,最后再加上云平台安全组只对可信 IP 开放 22 端口——做到这一层,你的 SSH 入口才算真正让人放心。
| 📑 | 📅 |
|---|---|
| Redis 数据持久化实战:RDB 与 AOF 的取舍、配置与灾备方案 | 2026-09-08 |
| Linux 服务器高负载排查实战:CPU、内存与磁盘监控命令详解 | 2026-09-07 |
| MySQL 数据库备份与恢复实战:mysqldump 定时备份方案全解析 | 2026-09-07 |
| Nginx 配置 HTTPS 全攻略:从免费证书申请到安全性能调优 | 2026-09-07 |
| 俄罗斯服务器租赁多少钱? | 2026-04-26 |
| firewalld 防火墙实战指南:区域概念、端口放行与常用配置 | 2026-09-08 |
| Nginx反向代理配置详解:多站点代理与负载均衡实战 | 2026-09-09 |
| 服务器日志分析:grep、awk 与 GoAccess 快速排障指南 | 2026-09-09 |
| 网站服务器迁移完整流程:数据同步、解析切换与验证 | 2026-09-09 |
| systemd服务管理实战:从Unit编写到开机自启与自动重启 | 2026-09-10 |