SSH 安全加固
加固概述
SSH 是服务器最暴露的入口之一,出厂默认配置往往不足以抵御暴力破解。实施以下加固措施可以极大提升安全性。
1. 配置公钥/私钥免密登录
比密码登录更安全
1
在客户端生成密钥
ssh-keygen -t ed25519 -C "admin_key"
2
上传公钥到服务器
ssh-copy-id -i ~/.ssh/id_ed25519.pub user@server_ip
2. 修改 SSH 核心配置
编辑 /etc/ssh/sshd_config,修改以下关键项:
修改默认端口(建议 10000 以上)
Port 2222
禁止 Root 用户直接登录(必做)
PermitRootLogin no
禁用密码登录(确保公钥已配置好后再操作!)
PasswordAuthentication no
闲置超时自动断开(秒)
ClientAliveInterval 300
ClientAliveCountMax 0
修改后重启服务生效:sudo systemctl restart sshd
3. 使用 Fail2Ban 自动封禁
Fail2Ban 监控日志,发现暴力破解后自动封锁攻击 IP。
# 安装
sudo yum install -y fail2ban
# 启用针对 SSH 的监控配?(/etc/fail2ban/jail.local)
[sshd]
enabled = true
port = 2222
filter = sshd
logpath = /var/log/secure
maxretry = 5
bantime = 1h
sudo systemctl enable fail2ban --now
常见问题解答
Q: 修改端口后连不上了?
A:
1. 确认防火墙是否放行了新端口:firewall-cmd --add-port=新端口/tcp;
2. 如果启用了 SELinux,需要添加端口:semanage port -a -t ssh_port_t -p tcp 新端口;
Q: 公钥上传了但还是提示输入密码?
A: 检查服务器权限,家目录权限不能为 777,.ssh 目录权限应为
700,authorized_keys 应为 600。