修改SSH默认端口、禁用密码启用密钥认证、限制用户与IP访问、部署fail2ban封禁恶意IP,可有效防御暴力破解攻击。

SSH 是 Linux 系统远程管理的核心服务,但因其默认开放在公网,常成为暴力破解攻击的首要目标。攻击者通过自动化工具反复尝试用户名和密码组合,试图获取系统访问权限。为有效防御此类攻击,必须从多个层面强化 SSH 安全配置。
修改默认 SSH 端口
SSH 默认使用 22 端口,这是所有扫描工具的首要目标。更改端口可大幅减少无效登录尝试。
操作方法:编辑 SSH 配置文件:
/etc/ssh/sshd_config找到并修改以下行:
Port 22 → Port 2222(或其他非知名端口)保存后重启 SSH 服务:
sudo systemctl restart sshd注意: 修改前确保防火墙已放行新端口,且本地客户端能正常连接。
禁用密码登录,启用密钥认证
密码认证是暴力破解的基础。使用 SSH 密钥对替代密码,可从根本上杜绝此类攻击。
步骤如下:- 在本地生成密钥对:
ssh-keygen -t rsa -b 4096 - 将公钥上传至服务器:
ssh-copy-id user@server - 测试密钥登录是否成功
- 确认无误后,编辑
/etc/ssh/sshd_config - 设置:
PasswordAuthentication no - 重启 SSH 服务
限制用户与 IP 访问
缩小合法访问范围,能显著降低暴露面。
建议配置:- 只允许特定用户登录:
AllowUsers admin deploy - 结合防火墙限制来源 IP:
sudo ufw allow from 192.168.1.100 to any port 2222 - 若使用云服务器,可通过安全组策略封锁非信任 IP
使用 fail2ban 自动封禁恶意 IP
fail2ban 能监控登录日志,自动将频繁失败的 IP 加入防火墙黑名单。
安装与配置示例(Ubuntu):sudo apt install fail2ban复制配置文件:
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local编辑
jail.local,启用 SSH 保护:[sshd]enabled = truemaxretry = 3bantime = 86400(封禁一天)保存后启动服务:
sudo systemctl enable fail2ban && sudo systemctl start fail2ban
基本上就这些。通过改端口、关密码、限用户、加防护四步,能有效抵御绝大多数暴力破解攻击。安全不是一劳永逸,定期查看日志、更新系统同样重要。










