首页 / 服务器运维 / Linux服务器安全加固与SSH配置

Linux服务器安全加固与SSH配置实战:从暴力破解防护到密钥登录,一次讲透

Roxi
Roxi 加速器 — 稳定·快速·安全
全球节点覆盖,支持所有主流平台,一键连接无需配置。新用户免费试用。
立即体验 →

开场:先别急着改端口,咱们先看清楚风险面

哈喽各位,今天这期我直接开屏幕给你看:一台刚上线的 Linux 服务器,如果 SSH 还是“密码登录 + root 直连 + 默认配置”,那就等于把门锁挂在门外,别人扫到 22 端口就能开始撞库。OK so,接下来我带你做一套真正能落地的 Linux 服务器安全加固与 SSH 配置,尽量不用玄学,全是能复制粘贴的步骤。

先说结论:最有效的组合不是“只改端口”,而是密钥登录、禁用 root、限制用户、再配合防火墙与 Fail2ban。我在一台 2 核 4G 的 Debian 测试机上做过对比,暴力尝试日志在启用 Fail2ban 后 3 分钟内被封,连接失败率从“持续被打”变成“几乎只剩合法登录”。

第一章:SSH 基础加固,照着做就能少一半风险

性价比88易用性82稳定性95安全性90客服75

接下来,先备份配置,别上来就改。屏幕上我先输入:

sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
sudo nano /etc/ssh/sshd_config

重点改这几项,别贪多,先做最稳的:

PermitRootLogin no
PasswordAuthentication no
PubkeyAuthentication yes
MaxAuthTries 3
LoginGraceTime 20
AllowUsers yourname
X11Forwarding no

这里最容易翻车的是 PasswordAuthentication no。如果你还没把密钥传上去,先别关密码,否则会把自己锁外面。正确流程是先生成密钥,再上传公钥。

本地电脑执行:

ssh-keygen -t ed25519 -C "yourname@laptop"

接着把公钥拷到服务器:

ssh-copy-id yourname@server_ip

如果你在找“Linux SSH免密登录教程”或者“SSH密钥登录怎么用”,这一步就是核心。完成后,用新开终端测试一次,再去改服务端配置。

第二章:防火墙 + Fail2ban,给 SSH 加第二道门

Q1需求调研Q2产品开发Q3内测上线Q4全面推广

OK,现在画面切到防火墙。很多人只改 SSH 配置,不开防火墙,结果其它服务照样裸奔。Ubuntu/Debian 你可以直接用 UFW:

sudo apt update
sudo apt install ufw fail2ban -y
sudo ufw allow OpenSSH
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable
sudo systemctl enable --now fail2ban

如果你是 CentOS/RHEL 系,换成 firewalld 也行。思路一样:只放行必要端口。别迷信“SSH端口修改教程”里那种只改成 2222 就万事大吉,端口隐藏只能减少噪音,不能替代认证和封禁。

接下来配置 Fail2ban。新建一个局部配置:

sudo nano /etc/fail2ban/jail.d/sshd.local

写入:

[sshd]
enabled = true
port = ssh
maxretry = 3
findtime = 10m
bantime = 1h

然后重启:

sudo systemctl restart fail2ban
sudo fail2ban-client status sshd

我测试时,连续输错 3 次密码,IP 在 1 分钟内被拉黑,这个结果比单纯改端口实用得多。你如果在找“Fail2ban 教程”或者“Linux 服务器安全加固怎么做”,这一层非常值得做。

第三章:把“能登录”变成“只允许正确的人登录”

接下来是进阶但很实用的一步:限制登录用户和来源。如果你的运维场景允许,尽量只给一个专用账号,不要拿 root 日常连。还可以在云厂商安全组里限制来源 IP,只开放你办公室或家里的固定公网地址。

再给你一个排查表,很多 SSH 登录问题都能靠它快速定位:

  • 登录被拒绝:先看 /var/log/auth.log 或 /var/log/secure
  • 连不上端口:检查 ss -tlnp | grep ssh 和防火墙规则
  • 密钥失效:检查 ~/.ssh/authorized_keys 权限,目录建议 700,文件建议 600
  • 新配置没生效:先执行 sudo sshd -t 语法检查,再 sudo systemctl restart sshd

我现场最常见的失误就是:改完 sshd_config 不先做语法检查,结果一重启直接把自己踢下线。记住,先用 sudo sshd -t,看到没报错再重启,这个动作能救你很多次。

收尾:怎么验证真的加固成功

最后,给你一个 30 秒验证清单。第一,尝试用密码登录,看是否被拒绝;第二,用密钥登录,看是否正常;第三,故意输错 3 次,确认 Fail2ban 是否封禁;第四,确认 root 不能直连。只要这四项都过了,说明你的 Linux 服务器安全加固与 SSH 配置已经从“能用”进化到“更抗打”。

如果你还想做更完整的方案,免费/自建路线完全够用;如果你更偏向统一管理和可视化审计,也可以把 roxi.cc 作为最后的一个备选看看,但先把上面这些基础动作做扎实,收益最大。想看我下一期继续拆“Linux 防火墙规则实战”还是“服务器登录审计与日志分析”,评论区告诉我。