修改 SSH 服务端的 MaxAuthTries 参数是防止暴力破解的基础手段,建议设为 3 次,但必须配合 Fail2ban 等工具封禁 IP 才能真正生效。
核心结论:单靠 MaxAuthTries 只能打断单次连接内的试探,必须结合 IP 封禁策略才能有效防御暴力破解。
- 先判断:确认当前 SSH 配置及是否暴露公网
- 优先做:修改 MaxAuthTries 为 3 并重载服务
- 再验证:使用 sshd -T 检查参数且观察日志
配置步骤
1. 编辑配置文件:使用 sudo nano /etc/ssh/sshd_config 打开,找到 MaxAuthTries 行,取消注释或新增为 MaxAuthTries 3。
2. 重载服务:执行 sudo systemctl reload sshd。注意用 reload 而不是 restart,避免中断现有连接。
sudo nano /etc/ssh/sshd_config
# 添加或修改:MaxAuthTries 3
sudo systemctl reload sshd
sudo sshd -T | grep maxauthtries验证生效
运行 sudo sshd -T | grep maxauthtries,输出应为 maxauthtries 3。同时观察/var/log/auth.log 或/var/log/secure,确认多次失败后连接被断开。
配合 IP 封禁
MaxAuthTries 限制的是单次 TCP 连接内的认证尝试总次数,一旦达到设定值,sshd 会直接断开连接。但它不管同一个 IP 新建多少次连接,所以必须搭配 IP 级封禁工具。安装 Fail2ban,启用 sshd 监控规则,设置 10 分钟内失败 3 次封禁 1 小时,防止攻击者快速新建连接绕过限制。
进阶安全建议
除了限制重试次数,建议禁用密码认证,改用密钥登录。在 sshd_config 中设置 PasswordAuthentication no 和 PermitRootLogin no,可大幅降低被爆破风险。
常见坑
不建议设为 1,某些客户端或密钥代理流程可能触发多次尝试,导致合法登录失败。修改配置后必须重载服务,仅保存不生效。若启用 PAM 账户锁定,注意解锁时间,避免误锁管理员。