尝试以 root 身份通过 SSH 进入虚拟机时访问被拒绝

尝试以 root 身份通过 SSH 进入虚拟机时访问被拒绝

从今天开始,当我尝试使用 Putty 或任何 SSH 客户端以 root 身份连接到我的 CentOS VM 时,我再也无法登录。连接已建立,但登录本身失败。我确信我输入了正确的密码,因为当我直接登录 VM 本身时它可以正常工作。

使用几周前做的备份,我可以毫无问题地使用 SSH。这实际上是今天才开始发生的。

我已经对此做了一些研究,并且:

  • SSH 登录失败时,我的日志文件没有任何更新
  • 在连接期间,使用 -vvv 获取有关登录过程的信息,我的备份登录和我当前的 VM 过程之间的唯一区别是,在我输入密码后,我当前的 VM 显示debug3: receive packet: type 51。就是这样。它只是一遍又一遍地要求我输入密码。
  • sshd_config正确设置,允许 root 登录和所有。

再次,昨天运行得非常好,查看我的命令历史记录,我看不到任何可能破坏 SSHD 的东西。只有cats 和tails,最坏的情况是apachectl restarts 并且 VM 是本地托管的,只有我可以访问它,因为它无法在我的 PC 关闭时运行。

我只是不明白发生了什么。是不是有文件损坏了?这能修复吗?我的备份缺少一些配置,我真的不想再次设置。

编辑:以其他用户身份登录确实有效。然后我可以使用sudo -i成为 root。现在这样就行了,但我不会将此标记为“已解决”,直到我真正找到真正的解决方案。

答案1

如果你碰巧改变了任何SELinux针对 root 的策略,它可能已经抹去了授权。

您可以将授权文件从任何其他服务器复制到此服务器,或将该文件用于任何其他用户。您还可以使用 keygen 生成新的授权文件。

ssh 密钥存储在:

<home>/.ssh/

对于 root

/root/.ssh

答案2

最后,SSH做过工作——问题不在于 SSH 的配置,而在于虚拟机的接口。其中一个接口使用的 IP 地址由其他网络上的 VM —— 因此,当我尝试通过 SSH 连接到它时,我无法以 root 身份登录,因为我确实使用了错误的密码。

我通过重新启动虚拟机并重新启动 PC 解决了这个问题多次直到它的接口被赋予一个新的 IP,我才能连接。

然而,虚拟机本身已被损坏或损坏到一定程度(apache 非常慢,上面提到的有问题的接口丢失了它的 IP 地址并且不断拒绝再次使用激活ifup,所以我最终放弃并使用了我的备份。

相关内容