【安全指南】新服务器上架,必做的 SSH 核心安全加固四步法
起因是新购买了一台新的云服务器或物理机,被入侵并植入了挖矿/蠕虫病毒。

默认的 SSH 配置通常只开启了传统的“密码登录”,且允许 root 直接访问。在公网环境下,这意味着你的服务器每时每刻都在遭受自动化脚本的暴力破解。
为了将黑客拒之门外,新服务器上线的第一件事,就是对 SSH 进行安全加固。本文将带你一步步实现:生成密钥、仅允许密钥登录、禁用密码登录、禁止 root 直接登录。
1. 核心安全策略一览
为了达到生产环境的安全标准,我们将调整 SSH 的工作模式:
| 风险点 | 默认状态 | 加固后状态 | 安全提升原因 |
| 认证方式 | 密码登录 | 仅允许密钥登录 | 彻底免疫针对密码的暴力破解 |
| 高权限暴露 | 允许 root 登录 | 禁用 root 登录 | 黑客无法直接猜解系统最高权限账号 |
| 默认端口 | 22 端口 | (可选)自定义端口 | 减少 90% 的自动化扫描垃圾日志 |
2. 第一步:本地生成 SSH 密钥对(Key Pair)
注意:此步骤在你的本地电脑(Mac、Windows 或你的常用工作机)上执行,不要在服务器上执行。
打开你本地的终端(Windows 用户可以使用 PowerShell 或 Git Bash),运行以下命令生成高强度的 Ed25519 密钥对(比传统的 RSA 更安全、速度更快):
ssh-keygen -t ed25519 -C "your_email@example.com"
- 提示
Enter file in which to save the key时,直接回车(使用默认路径~/.ssh/id_ed25519)。 - 提示
Enter passphrase时,建议输入一个密钥锁码(相当于给密钥再加一把锁),也可以直接回车留空。
生成后,你会在本地的 ~/.ssh/ 目录下得到两个文件:
id_ed25519:私钥(相当于钥匙,绝对不能泄露给任何人)。id_ed25519.pub:公钥(相当于锁,需要上传到服务器)。
3. 第二步:将公钥上传至服务器
在本地终端执行以下命令,将你的公钥复制到服务器上(请将 username 换成你服务器上的用户名,server_ip 换成服务器 IP):
ssh-copy-id -i ~/.ssh/id_ed25519.pub username@server_ip
此时系统会提示你输入一次服务器的旧密码。成功后,本地的公钥就会被自动写入到服务器的 ~/.ssh/authorized_keys 文件中。
验证密钥登录(非常重要):
在进行下一步之前,尝试在本地使用密钥登录,确保无需输入密码即可进入系统:
ssh username@server_ip
4. 第三步:修改 SSH 配置文件,实施铁腕加固
确保通过密钥成功登录服务器后,我们开始修改服务器的 SSH 服务配置文件。
- 保存并退出:在
nano编辑器中,按Ctrl + O保存,按Enter确认,再按Ctrl + X退出。
在文件中找到并修改以下关键项(若找不到某一项,可以在文件末尾直接添加):Plaintext
# 1. 禁用密码登录(核心:斩断暴破可能)
PasswordAuthentication no
# 2. 禁用 root 用户直接登录
# (强制使用普通用户登录后,再通过 sudo 提权)
PermitRootLogin no
# 3. 确保开启了公钥认证
PubkeyAuthentication yes
# 4. 【可选优化】修改默认的 22 端口,例如改成 2026
# Port 2026
使用 sudo 权限打开配置文件:Bash
sudo nano /etc/ssh/sshd_config
5. 第四步:测试与生效(不要立即断开连接!)
⚠️ 警告:在确认新配置生效且能正常连接之前,千万不要关闭当前这个已经登录的终端窗口!否则一旦配置有误,你可能会被永远锁在服务器外面。
- 终极验证:保持当前窗口不动,新打开一个本地终端窗口,尝试连接服务器:
- 测试密钥登录:
ssh username@server_ip── 应当顺畅进入。 - 测试 root 登录:
ssh root@server_ip── 应当被系统明确拒绝(Permission denied)。 - 测试密码登录(在没有密钥的机器上尝试):── 应当直接报错,不再弹出密码输入框。
- 测试密钥登录:
重启 SSH 服务让配置生效:Bash
sudo systemctl restart ssh
# 注意:部分 RedHat/CentOS 系统上命令为:sudo systemctl restart sshd
检查 SSH 配置语法是否正确:Bash
sudo sshd -t
如果没有任何输出,说明语法完全正确。
最后,记得定期做快照。