Linux SSH安全核心是禁用密码登录、限制用户与IP访问、加固服务配置。需生成ed25519密钥对,设PubkeyAuthentication yes且PasswordAuthentication no;AllowUsers限定用户,PermitRootLogin no;调优超时、加密算法并启用fail2ban;定期审计日志与轮换密钥。

Linux SSH 安全是系统防护的第一道门,关不牢,再强的防火墙也白搭。核心就三点:禁用密码登录、限制访问权限、最小化暴露面。
禁用密码认证,强制使用密钥登录
密码暴力破解是攻击者最常用手段。启用密钥对后,攻击成功率断崖式下降。
- 在客户端生成密钥对:ssh-keygen -t ed25519 -C "your_email@example.com"(推荐 ed25519,比 rsa 更快更安全)
- 将公钥复制到服务器:ssh-copy-id -i ~/.ssh/id_ed25519.pub user@server_ip
- 编辑 /etc/ssh/sshd_config,确认以下配置生效:
PubkeyAuthentication yes
PasswordAuthentication no
PermitEmptyPasswords no
- 重启服务前先用新终端测试密钥是否可用:sudo systemctl restart sshd
限制用户与IP,缩小攻击面
不是所有用户都需要 SSH,也不是所有网络都该连进来。
- 只允许特定用户登录:AllowUsers deploy admin(写在 sshd_config 中)
- 禁止 root 直接登录:PermitRootLogin no(必须设为 no,别信“改端口就行”)
- 按 IP 白名单控制访问:AllowUsers user@192.168.1.100 user@2001:db8::1(支持 IPv4/IPv6)
- 配合防火墙进一步收紧:ufw allow from 203.0.113.5 to any port 22,然后 ufw deny 22
加固 SSH 服务本身
默认配置太宽松,几个关键参数一调,安全性直接上台阶。
- 改默认端口?可选但非必需;若修改,记得同步更新防火墙和客户端配置
- 缩短连接超时:ClientAliveInterval 300(5 分钟无响应断开)
ClientAliveCountMax 2(最多容忍 2 次未响应)
- 禁用不安全协议和加密算法:
Protocol 2
KexAlgorithms curve25519-sha256,ecdh-sha2-nistp521
Ciphers chacha20-poly1305@openssh.com,aes256-gcm@openssh.com
- 启用失败登录锁定(需配合 fail2ban):sudo apt install fail2ban,启用 jail-sshd 规则
定期审计与最小权限原则
安全不是一劳永逸,而是持续验证的过程。
- 查看登录日志:sudo journalctl -u sshd -n 50 --no-pager 或 sudo grep "Failed password" /var/log/auth.log
- 检查当前活跃会话:who 或 w
- 每个 SSH 用户只分配必要权限,避免共用账号;敏感操作走 sudo,且限制 sudo 权限范围
- 定期轮换密钥,尤其员工离职或设备丢失后立即清理对应公钥
基本上就这些。不复杂但容易忽略——比如忘了测试密钥就关密码,结果自己也被锁在外面。做一次,记下来,下次升级系统或重装服务器时照着跑一遍,SSH 就稳了。
以上就是LinuxSSH安全怎么提升_最佳实践总结助你快速突破【指导】的详细内容,更多请关注php中文网其它相关文章!