root 账户可以在机器上执行任何操作:读取任何文件、安装任何软件、删除任何内容。因此,它的密码就是您服务器的主锁,而这把锁暴露在一个公网 IP 地址上。机器人通常会在 VPS 上线后的几分钟内开始尝试破解它。
请在接手机器时更改密码,并在对其保密性产生任何怀疑时立即更改。
VPS 采用什么样的密码规则?
By-Hoster 会在每个入口(下单、重装、在客户中心更改)于服务器端检查密码。密码必须满足:
| 条件 | 要求 |
|---|---|
| 长度 | 12 至 64 个字符 |
| 小写字母 | 必须包含 |
| 大写字母 | 必须包含 |
| 数字 | 必须包含 |
| 符号 | 必须包含,可选 !@#%^&*()-_=+[]{}:;,.? |
此外,以下内容也会被拒绝:过于常见的片段(password、azerty、123456、admin、debian……),以及您自己 VPS 的主机名或用户名。
其他符号(引号、反斜杠、反引号、$)被有意排除:它们需要经过机器的初始化配置,会在其中引发转义错误。
如何在客户中心更改 root 密码?
这是推荐的方式,也是在您无法再访问机器时唯一有效的方式。
- 在客户中心打开您的服务。
- 进入 访问与安全选项卡。
- 在相应字段中输入新密码,然后确认。
重要:KVM VPS 必须重启
在 KVM 虚拟机上,此更改会写入 VM 的初始化配置(cloud-init)中。它不会应用到正在运行的系统,而是会在下次启动时生效。
换句话说:提交表单后,请重启机器。在重启之前,旧密码仍然有效,而新密码尚不能使用。相反,在 LXC 容器上,更改会立即生效。
如何通过命令行更改 root 密码?
如果您已经登录到机器上,passwd 会立即更改密码,无需重启。
以 root 身份登录时:
passwd
以具有 sudo 权限的用户登录时:
sudo passwd root
输入并确认新密码。输入时不会显示任何内容,甚至不会显示星号:这是正常现象,终端会完全隐藏输入。预期的确认信息为:
passwd: password updated successfully
请注意:此方法不会通知客户中心。您服务详情页中保存的密码仍是旧密码,两者将不再一致。如果您希望以客户中心为准,请使用方法 1。
如何确认新密码可以正常使用?
在不关闭第一个会话的情况下,打开第二个 SSH 会话。如果新密码被拒绝,您仍保留当前会话以便进行修正。
ssh root@your-ip
或者,在机器上重新进行一次完整的身份验证:
su -
除了密码之外,还可以如何保护访问安全?
两项措施:SSH 密钥(用加密密钥对代替密码),以及 fail2ban(封禁反复尝试的地址)。
一个密码即使再长,也仍然是一串可以通过反复尝试猜出来的字符。真正能改变局面的有两项措施:
- SSH 密钥,用无法猜测的加密密钥对代替密码;
- fail2ban 和防火墙,封禁反复尝试的地址。
如果您丢失了密码且无法再访问机器,恢复步骤请参阅相关的专门文章。