GHOSTVPS / 安全
保护 Ubuntu VPS 的 SSH 访问
在关闭密码和 root 登录前,先验证独立管理账户和 SSH 密钥。
更新日期 · GhostVPS

开始之前
需要 Ubuntu 24.04、OpenSSH、sudo、Linux/macOS/WSL 终端以及已确认的恢复入口。本示例仅用于密钥登录,不应直接套用于 MFA、集中认证或 Match 策略。保持当前会话,按需替换示例 IP 和端口。
准备管理账户
使用已测试的 sudo 账户,或通过下方命令创建 deploy。若用户名已存在,先检查,不要重复创建。按提示设置强密码。在发送凭据前通过可信渠道核对服务器指纹。
您的 VPS · Linux 终端
sudo adduser deploy
sudo usermod -aG sudo deploy

在本地创建专用密钥
如果 ghostvps_admin 文件已存在,请换用新文件名,不要覆盖可用密钥。设置密钥口令。只向服务器复制 .pub 公钥,私钥保留在本机,不能发到工单或聊天中。
您的电脑 · 终端
ssh-keygen -t ed25519 -f ~/.ssh/ghostvps_admin
ssh-copy-id -i ~/.ssh/ghostvps_admin.pub deploy@203.0.113.10

确认密钥登录与 sudo 可用
通过明确限定公钥认证的命令打开另一个会话。询问密钥口令正常;该命令不允许回退到账户密码。在新会话运行 sudo -v,任一检查失败就停止。
您的电脑 · 终端
ssh -i ~/.ssh/ghostvps_admin -o PreferredAuthentications=publickey -o PasswordAuthentication=no deploy@203.0.113.10
您的 VPS · Linux 终端
sudo -v

创建独立配置片段
仅在测试成功后创建指定配置文件,且须先确认文件不存在,再填入四行配置。OpenSSH 多数设置采用首先读取的值,Ubuntu 提前加载片段。已有较早配置或 Match 规则可能改变结果,因此不能只看文件内容。
您的 VPS · Linux 终端
sudoedit /etc/ssh/sshd_config.d/00-ghostvps-hardening.conf
文件内容
PubkeyAuthentication yes
PasswordAuthentication no
KbdInteractiveAuthentication no
PermitRootLogin no

检查语法与生效配置
检查语法和生效值:pubkeyauthentication 应为 yes,另外三项应为 no。若语法错误或结果不符,不要重新加载。使用 Match 时还应通过 sshd -T -C 检查实际用户和地址上下文。
您的 VPS · Linux 终端
sudo /usr/sbin/sshd -t
sudo /usr/sbin/sshd -T | grep -E '^(pubkeyauthentication|passwordauthentication|kbdinteractiveauthentication|permitrootlogin) '

重新加载并再次测试
确认后重新加载 ssh,重新建立密钥会话并再次验证 sudo,再关闭原会话。若访问失败,使用保留的会话或恢复入口还原先前设置,执行 sshd -t 后重新加载。本教程不会修改防火墙。
您的 VPS · Linux 终端
sudo systemctl reload ssh
您的电脑 · 终端
ssh -i ~/.ssh/ghostvps_admin deploy@203.0.113.10



