📝 230 字 · ☕ 1 分钟阅读
为什么需要修改 SSH 默认端口?
SSH 默认使用 22 端口,这是全球黑客扫描的「头号目标」。每天有成千上万的自动化脚本在扫描互联网上的 22 端口,试图通过暴力破解入侵你的 VPS。修改默认端口 + 密钥登录 + 禁用密码认证,是 Linux 服务器安全加固的「三板斧」。
第一步:生成 SSH 密钥对
在本地机器(非服务器)上执行:
# 本地执行(Windows 用 PowerShell / CMD,Mac/Linux 用终端)
ssh-keygen -t ed25519 -C "your_email@example.com"
参数说明:
-t ed25519:使用 Ed25519 算法,比 RSA 更快更安全-C:添加注释,方便识别密钥用途
生成的文件:
~/.ssh/id_ed25519(私钥,绝对不要泄露)~/.ssh/id_ed25519.pub(公钥,可以安全地复制到服务器)
第二步:将公钥复制到服务器
# 方法一:使用 ssh-copy-id(推荐)
ssh-copy-id -i ~/.ssh/id_ed25519.pub root@你的服务器IP
# 方法二:手动复制(如果 ssh-copy-id 不可用)
cat ~/.ssh/id_ed25519.pub
# 复制输出内容
ssh root@你的服务器IP
mkdir -p ~/.ssh
echo "粘贴公钥内容" >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
chmod 700 ~/.ssh
第三步:修改 SSH 端口
连接到服务器:
ssh root@你的服务器IP
编辑 SSH 配置文件:
# Ubuntu / Debian
sudo nano /etc/ssh/sshd_config
# CentOS / RHEL
sudo vi /etc/ssh/sshd_config
找到 #Port 22 这一行,取消注释并修改:
Port 2222 # 建议选择 1024-65535 之间的端口
注意:建议先用 2222、22222、10022 等易记但不常见的端口。不要用 22、222、2222 这类太常见的端口。
第四步:配置密钥登录并禁用密码
在同一文件 /etc/ssh/sshd_config 中,确认或修改以下配置:
# 启用密钥登录(默认就是 yes)
PubkeyAuthentication yes
# 指定公钥文件位置
AuthorizedKeysFile .ssh/authorized_keys
# 禁用密码登录(关键!)
PasswordAuthentication no
# 禁用空密码登录
PermitEmptyPasswords no
第五步:配置防火墙放行新端口
# Ubuntu / Debian (UFW)
sudo ufw allow 2222/tcp
sudo ufw reload
# CentOS / RHEL (firewalld)
sudo firewall-cmd --permanent --add-port=2222/tcp
sudo firewall-cmd --reload
第六步:重启 SSH 服务并测试
# Ubuntu 24.04 / Debian 12
sudo systemctl restart sshd
# CentOS Stream
sudo systemctl restart sshd
⚠️ 重要:在断开当前 SSH 连接之前,另开一个终端窗口测试新端口连接:
# 使用新端口连接
ssh -p 2222 root@你的服务器IP
# 如果连接成功,再关闭旧窗口
第七步:安装 fail2ban 防御暴力破解
# 安装
sudo apt install fail2ban -y # Ubuntu/Debian
sudo yum install epel-release -y && sudo yum install fail2ban -y # CentOS
# 创建配置文件
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
sudo nano /etc/fail2ban/jail.local
在 [sshd] 部分配置:
[sshd]
enabled = true
port = 2222 # 改为你设置的新端口
filter = sshd
maxretry = 3
bantime = 3600
findtime = 600
# 启动 fail2ban
sudo systemctl enable fail2ban
sudo systemctl start fail2ban
# 查看状态
sudo fail2ban-client status sshd
常见问题 FAQ
Q: 修改端口后连接不上怎么办?
A: 检查以下可能:防火墙未放行新端口、SELinux 阻止(CentOS)、sshd_config 语法错误。可以先用 ssh -p 22 从旧端口登录,检查 sudo journalctl -u sshd 日志。
Q: 使用什么端口最安全?
A: 没有绝对安全的端口。关键是选择不常见的端口(如 23456、31234),避免被批量扫描工具命中。配合 fail2ban,即使暴露也能自动封禁。
总结
SSH 安全加固是 Linux VPS 上线的第一步。修改端口 + 密钥登录 + 禁用密码 + fail2ban,这四步做完,你的服务器安全性提升了 90%。记住一条铁律:永远不要在生产环境使用密码登录 SSH。