从今天开始,当我尝试使用 Putty 或任何 SSH 客户端以 root 身份连接到我的 CentOS VM 时,我无法再登录。建立连接,但登录本身失败。我知道我正在输入正确的密码,因为它在我直接登录到 VM 本身时有效。
使用我几周前制作的备份,我可以毫无问题地进行 SSH。这真的是今天才开始发生的。
我已经对此进行了一些研究,并且:
- 当 SSH 登录失败时,我的日志文件没有更新任何内容
- 在连接过程中,使用 -vvv 获取有关登录过程的信息,我的备份登录和我当前的虚拟机进程之间的唯一区别是,在我输入密码后,我当前的虚拟机显示
debug3: receive packet: type 51
. 而已。它只是一遍又一遍地要求我输入密码。 - 已
sshd_config
正确设置,允许 root 登录等。
同样,昨天这工作得非常好,查看我的命令历史记录,我看不到任何可能破坏 SSHD 的东西。只有cat
s 和tail
s,最坏的情况apachectl restart
是 s 并且 VM 是本地托管的,只有我可以访问它,因为它在我的 PC 关闭时无法运行。
我只是不明白发生了什么。是不是某个文件碰巧损坏了?这是可以修复的吗?我的备份缺少一些我真的不想再次设置的配置。
编辑:以不同用户身份登录确实有效。然后我可以使用sudo -i
成为root。现在可以了,但在我真正找到真正的解决方案之前,我不会将其标记为“已解决”。
如果您碰巧更改了任何针对 root 的SELinux策略,它可能已经清除了授权。
您可以将授权文件从任何其他服务器复制到此服务器,或将其用于任何其他用户。您还可以使用 keygen 生成新的。
ssh 密钥存储在:
而对于根
最后,SSH确实起作用了——问题不在于 SSH 的配置,而在于虚拟机的接口。其中一个接口使用了网络上另一个VM 使用的 IP 地址——因此,当我尝试通过 SSH 连接到它时,我无法以 root 身份登录,因为我确实使用了错误的密码。
我通过重新启动 VM 并多次重新启动我的 PC 来解决此问题,直到它的接口被赋予一个新的 IP,我可以连接到该 IP。
但是虚拟机本身在一定程度上损坏或损坏(apache非常慢,上面提到的有罪接口丢失了它的IP地址并且不断拒绝再次使用激活
ifup
,所以我最终放弃并使用了我的备份。