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,并**先保留一个已登录的终端窗口**,避免被踢出后连不上。
修改默认端口 + 限制登录用户/IP
虽然“安全靠隐蔽”不绝对,但把 SSH 改到非 22 端口,能过滤掉 90% 的自动扫描流量;再配合用户和 IP 白名单,攻击面直接缩小好几个量级。
- 改端口:在
/etc/ssh/sshd_config中取消注释并修改Port 2222(比如设为 2222 或其他 1024–65535 间未被占用的端口) - 只允许特定用户登录:
AllowUsers deploy admin(多个用户空格分隔) - 只允许内网或固定 IP 访问:
AllowUsers deploy@192.168.1.*或AllowUsers deploy@203.123.45.67
改完端口后,别忘了更新防火墙规则(如 ufw 或 iptables),放行新端口,同时封掉旧的 22 端口。
启用 Fail2ban 防暴力破解
即使禁了密码登录,SSH 服务本身仍可能被探测或误配置暴露。Fail2ban 能实时监控日志,自动封禁频繁失败的 IP,是低成本高回报的防御补充。
标签: linux word centos go 防火墙 端口 ubuntu ai google
还木有评论哦,快来抢沙发吧~