SSH安全加固六步走:让你的VPS远程登录不再裸奔


导读:一台暴露在公网的VPS,上线几分钟内SSH端口就会被自动化脚本扫描。默认22端口加root密码登录,是最常见的攻击面。本文用6个实操配置,把绝大多数自动化攻击挡在门外。

一、修改默认端口

编辑SSH配置:

nano /etc/ssh/sshd_config

把 Port 22 改为一个高位端口,例如:

Port 51234

重启服务生效:

systemctl restart sshd

注意:如果开了防火墙,先放行新端口再重启服务,否则会把你自己锁在外面。

二、禁止root直接登录

在sshd_config中设置:

PermitRootLogin no

日常使用普通账号登录,需要提权时用 sudo。攻击者最常爆破的就是root,禁掉它等于砍掉一半攻击面。

三、改用密钥登录,关闭密码登录

在本地电脑生成密钥:

ssh-keygen -t ed25519

上传公钥到服务器:

ssh-copy-id -p 51234 user@你的IP

确认密钥登录正常后,再关闭密码登录:

PasswordAuthentication no
PubkeyAuthentication yes

密钥登录基本免疫暴力破解,这是性价比最高的一步加固。

四、限制登录用户与来源IP

只允许指定用户登录:

AllowUsers user

如果有固定办公IP,再用防火墙限制来源:

ufw allow from 1.2.3.4 to any port 51234
ufw deny 51234

双保险之后,扫描器连握手的机会都没有。

五、安装fail2ban防暴力破解

apt install fail2ban -y

新建本地配置 /etc/fail2ban/jail.local:

[sshd]
enabled = true
maxretry = 5
bantime = 3600

含义:5次失败自动封禁来源IP一小时。重启服务:

systemctl restart fail2ban

用 fail2ban-client status sshd 可以查看当前封禁列表。

六、可选:开启两步验证

安装 libpam-google-authenticator 后运行 google-authenticator 扫码绑定,再在sshd_config中配置:

AuthenticationMethods publickey,keyboard-interactive

适合存放重要数据的机器,普通个人博客可跳过。

七、改完后的验证清单

  1. 用新端口登录一次:ssh -p 51234 user@IP;
  2. 用 lastb 和 journalctl -u sshd 查看失败登录记录,确认防护生效;
  3. 保留一个已登录的会话再重启服务,万一配置写错还能救回来。

总结

加固的核心思路是提高攻击成本:改端口过滤掉大部分扫描,密钥登录杜绝密码爆破,fail2ban兜底处理漏网之鱼。配置要一步一步改、每步都验证,切忌一次性全改后重启。


手机扫码阅读

微信或手机浏览器扫一扫,随时随地随心阅读与分享

VPS磁盘爆满急救指南:5步找出并清理空间杀手

香港、美国、日本VPS怎么选?个人建站与跨境业务地区对比

评 论
更换验证码