Skip to content
VDS · 安全

禁用 root 密码登录

为什么 root 密码登录很危险,PermitRootLogin 各选项有何区别,以及如何在不丢失机器访问权限的情况下禁用它。

更新于 2026年8月23日

所有人都知道 root 这个用户名:它存在于每一台机器上,并且拥有全部权限。暴力破解者只剩下一件事需要猜——密码。禁用 root 的密码登录,只需一个参数就能消除一整类攻击。

准备工作

先留后路,再下禁令。顺序和您的直觉正好相反。

  1. 创建一个具有 sudo 权限的用户——参见用户与 sudo。
  2. 为其添加 SSH 密钥,并在另一个终端窗口中验证登录。
  3. 确认 sudo -i 可以正常使用。
  4. 到这一步再修改设置。
ssh artem@<address>
sudo whoami

如果第二条命令返回了 root,说明您已经有了后路。

配置选项

在文件 /etc/ssh/sshd_config.d/99-hardening.conf 中:

取值含义
PermitRootLogin yes一切都被允许,包括密码。没有人会保持这种设置
PermitRootLogin prohibit-password密钥可用,密码被拒绝。合理的最低要求
PermitRootLogin forced-commands-only仅允许预定义的命令,用于自动化
PermitRootLogin noroot 完全无法通过 SSH 登录。最严格的选项

推荐的组合:

PermitRootLogin prohibit-password
PasswordAuthentication no

第二个参数会一次性关闭所有用户的密码登录,而不仅仅是 root。更多细节请参见 SSH 加固。

应用并验证

sudo sshd -t
sudo systemctl restart ssh
sudo sshd -T | grep -i permitrootlogin

在另一个窗口中,确认 root 不再接受密码,并且您的用户可以通过密钥登录:

ssh root@<address>
ssh artem@<address>

重启 sshd 不会断开当前会话——在检查完成之前请保持它处于打开状态。

仍然可用的方式

此更改仅影响 SSH。root 密码仍然需要,也仍然有效:

  • 在机器控制台中,两个标签页都可用——文本标签页和“Screen”标签页;
  • 通过恢复磁盘登录时;
  • 在系统内执行 su - 命令时。

密码本身以加密形式存储,可通过面板 /hosting/vds/m/<id> 的“访问”标签页上的按钮显示。这是您的应急通道,不应丢失——参见备份密钥与密码。

常见错误

错误后果解决方法
禁用了 root,却从未创建具有 sudo 权限的用户没有人能管理这台机器使用面板控制台并创建一个用户
密钥只存在于 root 名下新用户无法登录复制 authorized_keys 并修正权限
该设置被另一个文件覆盖规则不生效检查 sshd -T,而不是文件
以为禁令也会作用于控制台产生完全锁定的错觉控制台始终可用,这是设计使然

切勿在未于相邻窗口中验证替代登录方式的情况下禁用 root 登录。检查只需十秒钟;通过控制台恢复则要久得多。