让SSH更安全的5个高级技巧:从端口隐藏到密钥轮换

SSH 不设防,服务器迟早翻车

SSH 是服务器管理的生命线,也是最常见的攻击入口。你也许以为加了密码就安全了?但事实是:

  • 每天有成千上万次暴力登录尝试
  • 只用密码?秒破
  • IP 没限制?僵尸网络横扫
  • 密钥太久没换?被拷贝、泄露你都不知道

提升 SSH 安全并不复杂,下面这 5 个高级技巧可以让你的服务器从脆弱裸奔 → 零信任级保护


1. 更换默认端口(从22改到更隐蔽)

默认 SSH 端口是 22,大量扫描器、脚本攻击都是基于此。最简单有效的防护方式之一:改端口

✅ 修改方法:

编辑配置文件:

bash
sudo nano /etc/ssh/sshd_config

找到并修改这一行:

ini
Port 22888

保存后重启 SSH:

bash
sudo systemctl restart ssh

📌 建议选择 1024–65535 之间未占用的端口
🎯 不可用端口如 80/443/3306/25 等系统常用端口请避开。


2. 禁用密码登录,启用密钥认证(防暴力破解)

攻击者用暴力破解脚本尝试成千上万个密码,但如果你彻底禁用了密码登录,只允许密钥登录,几乎可以说“无懈可击”。

✅ 步骤:

  1. 在客户端生成密钥对:
bash
ssh-keygen -t ed25519
  1. 将公钥传到服务器:
bash
ssh-copy-id -i ~/.ssh/id_ed25519.pub user@server_ip
  1. 修改 SSH 配置:
bash
PasswordAuthentication no
PermitRootLogin no
  1. 重启 SSH:
bash
sudo systemctl restart ssh

💡 推荐使用 ed25519 密钥,比 RSA 更快更安全。


3. 设置 Fail2Ban,自动封锁恶意IP

再安全的配置,也挡不住不停尝试。Fail2Ban 可以自动扫描日志,检测暴力破解行为,并封禁恶意 IP

✅ 安装配置(以 Debian/Ubuntu 为例):

bash
sudo apt install fail2ban -y

配置 /etc/fail2ban/jail.local

ini
[sshd]
enabled = true
port = 22888 # 记得写你自定义端口
filter = sshd
maxretry = 3
findtime = 300
bantime = 86400
bash
sudo systemctl restart fail2ban

🎯 配合 Cloudflare 或防火墙黑名单使用,封锁将更智能。


4. 启用防火墙规则,只允许特定IP访问 SSH

真正高强度的做法是:只有你的IP才能登录SSH。即使密码/密钥泄露,别人也连接不上。

✅ 使用 UFW(简易防火墙)配置:

bash
sudo ufw allow from 你的IP地址 to any port 22888 proto tcp
sudo ufw deny 22888
sudo ufw enable

或者:
用 Cloudflare Tunnel / Tailscale / WireGuard 等零信任方式包裹 SSH 服务,仅私有网络可连。


5. 定期轮换 SSH 密钥 + 多人协作管理策略

✅ 为什么轮换密钥?

  • 防密钥私下流转;
  • 防员工离职后滥用权限;
  • 防本地密钥被木马/劫持;

✅ 最佳实践:

  • 所有 SSH 密钥都应标注用途,例如:id_ed25519.devops@laptop
  • 管理多个用户用 .ssh/authorized_keys 中逐行控制;
  • 定期删除无效/旧密钥(可用脚本自动检测);
  • 建立密钥签发 + 回收流程(如 Vault、Teleport);

Bonus:配合 2FA,做到零信任登录

可以使用 Google PAM + libpam-google-authenticator 为 SSH 添加二次验证(动态口令):

bash
sudo apt install libpam-google-authenticator
google-authenticator

并在 /etc/pam.d/sshdsshd_config 中启用:

ini
ChallengeResponseAuthentication yes
AuthenticationMethods publickey,keyboard-interactive

🧠 适合高安全级别场景如:金融后台、生产集群、数据库主节点。


✅ 结语:SSH 安全,从“不被发现”开始

你不需要部署昂贵的堡垒机系统,也不一定需要上云原生安全模块。
只要你掌握这几个简单但实用的技巧,就能把你的服务器从“随便连”变成“精确授权”:

  • 攻击者找不到 → 改端口
  • 破解者进不来 → 关密码
  • 扫描器封掉它 → Fail2Ban
  • 根本不让人连 → 限IP/防火墙
  • 密钥轮转机制 → 防内部风险

不怕黑客暴力,就怕你配置随便。

软件分享

7款提高运维效率的命令行神器,堪比小型监控平台

2025-3-26 12:04:21

实操指南软件分享

MySQL性能优化实战:索引、查询缓存与慢查询分析

2025-3-28 13:58:56

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧