ARTICLE

DMIT SSH 安全加固:从密钥登录到 fail2ban 全流程

SSH Key 登录、禁用密码、修改端口、防火墙、fail2ban 安装等安全加固步骤。

为什么要加固 SSH

SSH 是管理 DMIT 云服务器的主要入口。默认配置虽然可用,但存在安全隐患:密码登录易被暴力破解,默认端口 22 会吸引大量扫描流量。本文介绍从基础到进阶的 SSH 安全加固方法。

所有操作需通过 SSH 登录后执行。建议在修改配置前先创建快照,以便回滚。

第一步:使用 SSH Key 登录

SSH Key 比密码更安全——密钥长度通常为 2048-4096 位,暴力破解几乎不可能。

生成密钥对

在本地机器上生成(不要在服务器上):

ssh-keygen -t ed25519 -C "your_email@example.com"

推荐使用 ed25519 算法(更短、更快、更安全)。如果需要兼容旧系统,使用 RSA:

ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

上传公钥到服务器

ssh-copy-id root@<server_ip>

或手动将公钥内容追加到服务器的 ~/.ssh/authorized_keys 文件中。

验证 Key 登录

上传后,开一个新终端测试 Key 登录是否成功:ssh root@<server_ip>。确认无需输入密码即可登录后,再进行下一步。

第二步:禁用密码登录

确认 Key 登录正常后,禁用密码登录。编辑 /etc/ssh/sshd_config:

PasswordAuthentication no
ChallengeResponseAuthentication no
UsePAM no

重启 SSH 服务:systemctl restart sshd

注意:修改后不要关闭当前 SSH 会话——开一个新终端测试登录,确保配置正确后再关闭旧会话。

第三步:修改默认端口

将 SSH 端口从默认的 22 改为其他端口(如 2222),可以减少大量自动扫描攻击。

# 编辑 /etc/ssh/sshd_config
Port 2222

修改后需要同时在防火墙中放行新端口:

# iptables
iptables -A INPUT -p tcp --dport 2222 -j ACCEPT

# ufw
ufw allow 2222/tcp

重启 SSH 服务后,使用新端口连接:ssh -p 2222 root@<server_ip>

第四步:限制登录用户

禁止 root 直接 SSH 登录,改用普通用户 + sudo:

# 创建普通用户
adduser deploy
usermod -aG sudo deploy

# 上传 Key 到 deploy 用户后,编辑 sshd_config
PermitRootLogin no
AllowUsers deploy

第五步:配置防火墙

仅放行必要端口。以 ufw 为例:

ufw default deny incoming
ufw default allow outgoing
ufw allow 2222/tcp   # SSH(新端口)
ufw allow 80/tcp     # HTTP
ufw allow 443/tcp    # HTTPS
ufw enable

如果使用 IPv6,确保 ufw 的 IPv6 规则也已配置(编辑 /etc/default/ufw 设置 IPV6=yes)。

第六步:安装 fail2ban

fail2ban 可以自动封禁多次失败登录的 IP:

apt update && apt install fail2ban
systemctl enable fail2ban
systemctl start fail2ban

默认配置即可工作(5 次失败后封禁 10 分钟)。自定义配置在 /etc/fail2ban/jail.local:

[sshd]
enabled = true
port = 2222
maxretry = 3
bantime = 3600

其他安全建议

  • 定期更新系统:apt update && apt upgrade,安装安全补丁
  • 禁用不必要的服务:用 ss -tlnp 查看监听端口,关闭不需要的
  • 使用 SSH Agent Forwarding:避免在服务器上存储私钥
  • 设置登录通知:在 ~/.bashrc 中添加登录通知脚本
  • 审计日志:定期查看 /var/log/auth.log

检查清单

项目状态
SSH Key 登录✓ 已配置
密码登录已禁用✓ PasswordAuthentication no
默认端口已修改✓ 非 22 端口
root 登录已禁用✓ PermitRootLogin no
防火墙已配置✓ 仅放行必要端口
fail2ban 已安装✓ 自动封禁

更多 DMIT 使用指南可参考新手指南与《IPv6 配置教程》。

本文核对日期:2026-08-18。SSH 配置细节以你的系统版本为准。

NEXT STEP

看完教程,选一台合适的 DMIT

用套餐快照按预算与线路筛选,或直接前往官网查看实时库存。

推广披露:通过链接购买可能为推荐者带来佣金,不会增加你的购买价格。