| README.md | ||
| setup_server_security.sh | ||
setup_server_security.sh
一键为 Ubuntu/Debian 服务器配置 SSH 公钥认证并部署 fail2ban 入侵防御。
功能
- 自动扫描同目录下的
.pub公钥文件,支持单选或全选 - 通过指纹去重,避免重复写入
authorized_keys - 安装并配置 fail2ban:SSH 登录失败 3 次永久封禁
- 任意步骤失败自动回滚至备份状态
- 不修改
sshd_config,不禁用密码登录,不重启 sshd
系统要求
- Ubuntu 18.04+ 或 Debian 10+
- root 权限(
sudo)
使用方法
1. 将脚本和公钥上传到同一目录
scp setup_server_security.sh mykey.pub user@server:~/
2. 登录服务器后执行
sudo bash setup_server_security.sh
目录下只有一个 .pub 文件时自动选择;多个文件时交互选择。
fail2ban 配置参数
| 参数 | 值 | 说明 |
|---|---|---|
bantime |
-1 |
永久封禁 |
maxretry |
3 |
最大失败次数 |
findtime |
10m |
计数窗口 |
ignoreip |
127.0.0.1/8 ::1 |
本地回环不封禁 |
执行后验证
fail2ban-client get sshd bantime # 应输出 -1
fail2ban-client get sshd maxretry # 应输出 3
cat /root/.ssh/authorized_keys
备份与回滚
每次运行在 /root/security_setup_backup_<时间戳>/ 自动备份:
/etc/ssh/sshd_config/etc/fail2ban/jail.local
任意步骤出错时脚本自动从该目录恢复原始文件。备份目录不会自动删除,需手动清理。