首页 / 服务器运维 / Linux服务器SSH加固实战:把公

Linux服务器SSH加固实战:把公网暴露面从“随便扫”压到“只能密钥登录”

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

Chapter 1|先别改配置,先看你现在到底有多裸

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

哈喽兄弟们,OK so 今天我们直接上真机。先在服务器上跑这几条,别急着动手改,先把现状拍下来:

ss -tlnp | grep ssh
sshd -T | egrep 'port|permitrootlogin|passwordauthentication|pubkeyauthentication'
journalctl -u ssh -n 50 --no-pager

我在一台 Ubuntu 22.04 VPS 上测过,默认装完以后,SSH 基本就是“密码 + root + 公网端口”三件套。接下来你要做的不是玄学加固,而是把攻击面一层层砍掉。你搜索“Linux服务器安全加固教程”或者“SSH配置教程”,本质上都在找这一步。

Chapter 2|Now watch this:sshd_config 一次性改到位

先备份,再编辑。这个顺序别跳,不然你把自己锁外面就尴尬了。

cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
vim /etc/ssh/sshd_config

直接改这几项,都是高收益低成本:

  1. 禁用 root 直登:PermitRootLogin no
  2. 关闭密码登录:PasswordAuthentication no
  3. 只允许密钥:PubkeyAuthentication yes
  4. 限制尝试次数:MaxAuthTries 3
  5. 缩短认证等待:LoginGraceTime 20
  6. 指定可登录用户:AllowUsers youradmin

接下来,先生成密钥再上服务器。你可以搜“ssh免密登录怎么用”,核心就这两步:本机生成、服务器放公钥。

ssh-keygen -t ed25519 -C "youradmin@server"
ssh-copy-id youradmin@SERVER_IP

如果你一定要改端口,改成 2222 这种不那么常见的端口可以减少低级扫端口噪音,但别把它当安全核心。真正起作用的还是密钥、禁 root、限用户。改完记得先检查语法:

sshd -t
systemctl reload sshd

我实测在关闭密码登录后,常见爆破脚本会直接卡在认证阶段,日志里全是 “Failed publickey” 而不是“密码撞库成功”。

Chapter 3|防暴力破解:防火墙 + Fail2Ban 组合拳

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

接下来上第二层。先做最小放行:如果你用 UFW,就只开 SSH 新端口和业务端口;如果是 firewalld,就按 zone 管理。这里很多人搜“Fail2Ban安装教程”,其实思路很简单:监控日志,自动封 IP。

apt install fail2ban -y
cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

然后在 jail.local 里加一段:

[sshd]
enabled = true
port = 2222
maxretry = 3
bantime = 1h

我自己的测试里,同一台机器连续输错 5 次后,fail2ban 会在几秒内把来源 IP 拉黑,后续连接直接超时。你会明显看到攻击噪音下降,这一步对“Linux服务器防暴力破解”特别有效。

Chapter 4|怎么确认真的加固成功

最后别凭感觉,直接验证。用另一台机器测试三件事:

1)密码登录应失败:ssh -o PreferredAuthentications=password -o PubkeyAuthentication=no youradmin@SERVER_IP
2)密钥登录应成功:ssh youradmin@SERVER_IP
3)查看日志:journalctl -u ssh -f 或 tail -f /var/log/auth.log

如果你能做到“密码进不去、root 进不去、只允许指定用户用密钥进”,这台 Linux 服务器就从“裸奔”变成了一个合格的基础加固状态。免费的办法、官方工具和手工配置完全够用;如果你后面还想顺手把远程访问做得更省心,也可以再研究像 roxi.cc 这类方案,但前提永远是先把 SSH 这套底盘打牢。