Linux SSH安全需四步:禁用密码登录强制密钥认证;修改默认端口并限制用户/IP访问;部署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<br>PasswordAuthentication no<br>PermitEmptyPasswords no
改完记得重启服务:sudo systemctl restart sshd,并**先保留一个已登录的终端窗口**,避免被踢出后连不上。
虽然“安全靠隐蔽”不绝对,但把 SSH 改到非 22 端口,能过滤掉 90% 的自动扫描流量;再配合用户和 IP 白名单,攻击面直接缩小好几个量级。
/etc/ssh/sshd_config 中取消注释并修改 Port 2222(比如设为 2222 或其他 1024–65535 间未被占用的端口)AllowUsers deploy admin(多个用户空格分隔)AllowUsers deploy@192.168.1.* 或 AllowUsers deploy@203.123.45.67
改完端口后,别忘了更新防火墙规则(如 ufw 或 iptables),放行新端口,同时封掉旧的 22 端口。
即使禁了密码登录,SSH 服务本身仍可能被探测或误配置暴露。Fail2ban 能实时监控日志,自动封禁频繁失败的 IP,是低成本高回报的防御补充。
sudo apt install fail2ban(Debian/Ubuntu)或 sudo yum install fail2ban(CentOS/RHEL)sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local,确保 [sshd] 段中 enabled = true
jail.local 中):maxretry = 3<br>bantime = 1h<br>findtime = 10m
启动服务:sudo systemctl enable fail2ban && sudo systemctl start fail2ban,可用 sudo fail2ban-client status sshd 查看状态。
最小权限原则同样适用于 SSH:不用的功能关掉,不该留的日志删掉,该留的必须可追溯。
sshd_config 中设为 no):PermitRootLogin no、X11Forwarding no、AllowTcpForwarding no(除非真需要)LogLevel VERBOSE(记录 key fingerprint 和认证方式,便于事后排查)/var/log/auth.log(Debian)或 /var/log/secure(RHEL),关注 Failed password、Invalid user、Connection closed 等关键词建议搭配 logwatch 或简单脚本每日邮件摘要关键事件,早发现、早响应。
基本上就这些——不复杂,但容易忽略。做完这四步,你的 SSH 就已经脱离“裸奔”状态,进入可控、可管、可审计的安全基线。后续再叠加多因素(如 Google Authenticator)、跳板机或证书体系,就是更上一层的事了。
以上就是LinuxSSH安全怎么提升_最佳实践总结助你快速突破【教程】的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号