解决Rocky Linux 9无法使用Root用户SSH远程连接的问题

180 阅读1分钟

我在 VMware 虚拟机中安装了最新的 Rocky Linux 9。 遇到了一个非常奇怪的问题:在虚拟机的黑窗口(控制台)中,使用 root 账号和密码可以正常登录。但是当使用 FinalShell 或 Xshell 等 SSH 工具进行远程连接时,输入了正确的密码,却一直提示“认证失败”或无限循环要求输入密码

经过排查,发现这是 Rocky Linux 9(以及较新的 Linux 发行版)默认的安全策略导致的。这里记录一下解决方案。

进入配置文件

在虚拟机的终端中,输入以下命令编辑 sshd_config 文件:

vi /etc/ssh/sshd_config

修改配置项

进入编辑器后(如果是 vi/vim):

  1. / 键进入搜索模式,输入 PermitRootLogin 并回车,找到对应的行。
  2. i 键进入编辑模式。
  3. 找到 PermitRootLogin 这一项。它被设置成了 prohibit-password
  4. 将其修改为:
PermitRootLogin yes

image-20251203165242223

保存并退出

Esc 键退出编辑模式,输入 :wq 保存并退出。

验证

回到 FinalShell,再次尝试使用 root 用户连接,就能秒连成功了

在生产环境(公司服务器)中,为了安全起见,通常不建议开启 root 远程登录,最好创建一个普通用户并配置 sudo 权限。但在本地虚拟机学习 Redis 或 Java 开发时,开启 root 权限能省去很多麻烦。