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。