如何配置 SSH 最大重试次数 LimitMaxAuthTries 防止爆破

文章导读
修改 SSH 服务端的 MaxAuthTries 参数是防止暴力破解的基础手段,建议设为 3 次,但必须配合 Fail2ban 等工具封禁 IP 才能真正生效。
📋 目录
  1. A 配置步骤
  2. B 验证生效
  3. C 配合 IP 封禁
  4. D 进阶安全建议
  5. E 常见坑
A A

修改 SSH 服务端的 MaxAuthTries 参数是防止暴力破解的基础手段,建议设为 3 次,但必须配合 Fail2ban 等工具封禁 IP 才能真正生效。

核心结论:单靠 MaxAuthTries 只能打断单次连接内的试探,必须结合 IP 封禁策略才能有效防御暴力破解。

  • 先判断:确认当前 SSH 配置及是否暴露公网
  • 优先做:修改 MaxAuthTries 为 3 并重载服务
  • 再验证:使用 sshd -T 检查参数且观察日志

配置步骤

1. 编辑配置文件:使用 sudo nano /etc/ssh/sshd_config 打开,找到 MaxAuthTries 行,取消注释或新增为 MaxAuthTries 3。

如何配置 SSH 最大重试次数 LimitMaxAuthTries 防止爆破

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,确认多次失败后连接被断开。

如何配置 SSH 最大重试次数 LimitMaxAuthTries 防止爆破

配合 IP 封禁

MaxAuthTries 限制的是单次 TCP 连接内的认证尝试总次数,一旦达到设定值,sshd 会直接断开连接。但它不管同一个 IP 新建多少次连接,所以必须搭配 IP 级封禁工具。安装 Fail2ban,启用 sshd 监控规则,设置 10 分钟内失败 3 次封禁 1 小时,防止攻击者快速新建连接绕过限制。

如何配置 SSH 最大重试次数 LimitMaxAuthTries 防止爆破

进阶安全建议

除了限制重试次数,建议禁用密码认证,改用密钥登录。在 sshd_config 中设置 PasswordAuthentication no 和 PermitRootLogin no,可大幅降低被爆破风险。

常见坑

不建议设为 1,某些客户端或密钥代理流程可能触发多次尝试,导致合法登录失败。修改配置后必须重载服务,仅保存不生效。若启用 PAM 账户锁定,注意解锁时间,避免误锁管理员。