# 关于新手小白拿到VPS之后，最应该做的安全防护问题！（近期疑似VMISS面板密码，黑客撞库爆破），上百台TRI停机!
> 作者: 成也 | 发布日期: 2026-11-03 | 最后更新: 2026-11-03 | 分类: 教程 | 专题: VPS
> 原文链接: https://vpsbbc.com/blog/post/post-safety-ssh
> 实时库存监控大盘: https://vpsbbc.com/
> 核心摘要 (TL;DR): 当你拿到第一台VPS时，必做的安全防护！那就是关闭root密码登录，修改SSH默认端口！使用SSH秘钥登录，这不是危言耸听，而是血淋淋的教训和经验！
## 拿到第一台VPS，最应该做的是这些...

> 这里强烈建议各位新手小白，一定不要偷懒，以为商家的面板绝对安全！通常将秘钥掌握在自己手中，才是绝对的安全！！！很多厂商都是默认root账号密码登录，例如：[VMISS](https://app.vmiss.com/aff.php?aff=6395)，[berohost](https://bero-host.de/affiliate/3I3HnjIY4V)等等。

`特别提醒：一定要备份生成后的秘钥，避免本地电脑重装导致秘钥丢失`

**接下来我会从拿到开机邮件一直到SSH秘钥登录成功结束，详细的操作流程**

### 1. 当然是重装系统

> 如果你觉得商家提供的系统不安全不纯净，害怕对方留了后门，可以自行重装，但一定要对方使用规则允许的前提下，切勿触犯规则导致小鸡被强行停机！

### 2. 生成SSH秘钥

> 其实每个商家都在面板提供了SSH秘钥的功能，但如果是面板泄露的问题，那么SSH秘钥很有可能也会泄露，所以为了将安全掌握在自己手上，这里咱们就在本地电脑上生成自己的秘钥，更可以一套秘钥用在其他VPS上！

1. 在本地windows电脑上执行命令生成SSH秘钥

```bash
#在本地电脑生成秘钥
ssh-keygen -t ed25519 -C "秘钥备注"
#(linux或mac)自动写入公钥并配置好权限 
#使用 ssh-copy-id 自动写入公钥并配置好权限（需输入最后一次 root 密码）
ssh-copy-id -i ~/.ssh/id_ed25519.pub root@你的服务器IP
#（windows）
type .ssh\id_ed25519.pub | ssh root@你的服务器IP "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys"

#手动操作
ssh-keygen -t ed25519 -C "秘钥备注"
#如果你之前生成过秘钥
dir .ssh\*.pub
##打印并查看公钥内容 通常是 id_ed25519.pub 或 id_rsa.pub
type .ssh\id_ed25519.pub
#将打印出来的秘钥串复制，然后在服务器上执行
mkdir -p ~/.ssh
echo "这里粘贴你复制的ssh-ed25519开头的完整公钥" >> ~/.ssh/authorized_keys
chmod 700 /root ~/.ssh && chmod 600 ~/.ssh/authorized_keys
```

![关于新手小白拿到VPS之后，最应该做的安全防护问题！（近期疑似VMISS面板密码，黑客撞库爆破），上百台TRI停机! 实测配图](/blog/uploads/blog/2026/11/post-safety-ssh-173035.webp)
Q： 这个原因是windows自带没有命令，可以选择下面的type..一步到位！

![关于新手小白拿到VPS之后，最应该做的安全防护问题！（近期疑似VMISS面板密码，黑客撞库爆破），上百台TRI停机! 实测配图](/blog/uploads/blog/2026/11/post-safety-ssh-173518.webp)
Q： 这里意味着传输完成并且成功登录到了服务器

`注意：如果已经修改过SSH端口，那么需要在IP 后面 或者 前面加上 -p SSH对应的端口`

### 2.不要急着关闭密码登录，测试免登录

1. 测试免登录

```bash
#如果是默认端口 执行命令：
ssh root@你的服务器IP
#如果是非默认端口执行命令：
ssh -p 22022 root@服务器ip
```

**如果你前面的操作正常，是不会要输入密码的，但这里有可能会提示要输入密码，原因是服务器关闭了SSH秘钥登录**

1. 解决办法

```bash
#在服务器上执行命令
sed -i 's/^#*PubkeyAuthentication.*/PubkeyAuthentication yes/' /etc/ssh/sshd_config
sed -i 's/^#*PermitRootLogin.*/PermitRootLogin prohibit-password/' /etc/ssh/sshd_config
sed -i 's/^#*PasswordAuthentication.*/PasswordAuthentication no/' /etc/ssh/sshd_config
sed -i 's/^#*PasswordAuthentication.*/PasswordAuthentication no/' /etc/ssh/sshd_config.d/*.conf 2>/dev/null
systemctl restart ssh || systemctl restart sshd
#执行完毕之后，CMD窗口输入免登录命令，就能正常连接了
```

![关于新手小白拿到VPS之后，最应该做的安全防护问题！（近期疑似VMISS面板密码，黑客撞库爆破），上百台TRI停机! 实测配图](/blog/uploads/blog/2026/11/post-safety-ssh-173314.webp)
Q： 这里就意味着执行完成！

1. 第二个办法：直接操作服务器配置文件

```bash
sudo nano /etc/ssh/sshd_config
#找到并确保以下配置项处于取消注释（去掉开头的 #）且值如下的状态：
PubkeyAuthentication yes
PasswordAuthentication no
PermitRootLogin prohibit-password
```

`PasswordAuthentication no 是全局关闭所有账号的密码登录；PermitRootLogin prohibit-password 代表允许root的SSH秘钥登录`

注意：Ubuntu 22.04/24.04 或部分云服务器镜像会在/etc/ssh/sshd_config.d下存放额外的配置，建议运行 `grep -rn "PasswordAuthentication" /etc/ssh/sshd_config.d/ `检查并同意修改为 `no `

1. 配置完成之后

```bash
# 检查配置文件语法是否正确（无输出即为正常）
sudo sshd -t

# 重启 SSH 服务（Debian/Ubuntu 通常为 ssh，CentOS/RHEL/Rocky 通常为 sshd）
sudo systemctl restart ssh || sudo systemctl restart sshd
```

1. 接下来验证登录

* 运行 `ssh root@你的服务器IP` 此时不需要输入密码
* 运行 `ssh -o PubkeyAuthentication=no root@你的服务器IP` 此时系统会直接拒绝

至此SSH秘钥登录，以及禁止root用户账号密码登录全部完成！

---

### 3.额外 部署安装fail2ban 自动封禁IP

正常情况下，如果修改为了SSH秘钥登录，默认的22端口已经非常安全！但避免不了公网上暴力扫描，如果希望彻底安静，可以选择安装fail2ban封禁IP

```bash
# Ubuntu / Debian 安装并启动
sudo apt update && sudo apt install -y fail2ban
sudo systemctl enable --now fail2ban
```

**默认情况下fail2ban会自动启动对SSH的基础保护，如果你的事Debian13，建议再生成一个本地配置文件**

```bash
cat << 'EOF' > /etc/fail2ban/jail.local
[DEFAULT]
bantime  = 24h
findtime = 10m
maxretry = 3
backend  = systemd

[sshd]
enabled = true
mode    = aggressive
EOF

# 重启 Fail2ban 并查看当前拦截状态
systemctl restart fail2ban
fail2ban-client status sshd
```

不过很多成熟的厂商都会默认秘钥登录，而禁止root账户密码登录，例如: [DMIT](https://www.dmit.io/aff.php?aff=15350)；其实条件允许的情况下，选择大厂是明智的选择，在解决问题和处理问题上更加的迅速有效！当然小厂是性价比的最佳选择，如果不遇到问题，那是万幸中的大幸！！！！

[原创不易，感谢支持！！！！](https://vpsbbc.com)
