Linux SSH安全需从认证、访问控制、日志监控和配置优化四层面加固:禁用密码登录启用密钥认证;限制AllowUsers/DenyUsers及IP;修改端口并部署Fail2ban;配置详细日志与空闲超时。

Linux SSH 安全不是“开个服务就行”,而是需要从认证、访问控制、日志监控和配置优化四个层面主动加固。下面这些技巧不复杂,但容易忽略,实操性强,能显著降低暴力破解、未授权访问等风险。
禁用密码登录,强制使用密钥认证
密码登录是暴力破解的主要入口。启用密钥认证后,攻击者即使知道用户名也极难登录。
- 在客户端生成密钥对:ssh-keygen -t ed25519 -C "your_email@example.com"(推荐 ed25519,更安全高效)
- 将公钥复制到服务器:ssh-copy-id -i ~/.ssh/id_ed25519.pub user@server_ip
- 编辑 /etc/ssh/sshd_config,确认以下两项已设置:
- PubkeyAuthentication yes
-
PasswordAuthentication no(改完记得 systemctl restart sshd)
限制SSH访问范围与用户权限
不是所有用户都需要SSH权限,也不是所有IP都该被允许连接。
- 只允许特定用户登录:在 sshd_config 中添加 AllowUsers alice bob@192.168.1.*(支持用户名+IP组合)
- 禁止高危账户远程登录:DenyUsers root guest(尤其 root,应禁用直接登录)
- 配合防火墙限制来源IP(如用 ufw):ufw allow from 203.0.113.5 to any port 22,再 ufw enable
修改默认端口 + 启用Fail2ban自动封禁
虽然“隐蔽端口”不是银弹,但配合 Fail2ban 能有效过滤大量自动化扫描和爆破尝试。
- 编辑 /etc/ssh/sshd_config,改 Port 22 为其他端口(如 Port 2222),重启 sshd
- 安装并启用 Fail2ban:apt install fail2ban(Debian/Ubuntu)或 dnf install fail2ban(RHEL/CentOS)
- 启用 SSH 监控规则(默认通常已包含),检查 /etc/fail2ban/jail.local 中 [sshd] 是否 enabled = true
- 查看封禁状态:fail2ban-client status sshd
开启登录日志审计与连接超时控制
及时发现异常行为,避免空闲会话长期滞留造成风险。
- 确保日志记录完整:确认 /etc/ssh/sshd_config 中有 LogLevel VERBOSE 或更高(如 INFO),日志路径通常为 /var/log/auth.log 或 /var/log/secure
- 缩短空闲连接时间:ClientAliveInterval 300(每5分钟发一次心跳)
ClientAliveCountMax 2(两次无响应即断开,约10分钟无操作自动退出)
- 定期清理旧密钥和失效用户,配合 lastb 查看失败登录、last 查看成功登录,形成基本审计习惯
基本上就这些。不需要一步到位,挑2–3项优先落地(比如先关密码登录+设Fail2ban),就能明显提升防护水位。安全不是功能开关,而是持续的习惯和验证。
以上就是LinuxSSH安全怎么提升_关键技巧整理帮助提高效率【指导】的详细内容,更多请关注php中文网其它相关文章!