无法连接到虚拟机

无法连接到虚拟机

这里是 Linux 新手。

我在 Google Cloud 上有一个虚拟机。上面有 Debian。我以前通过 Google Cloud 的 ssh 客户端连接到它。

在文件中/etc/ssh/sshd_config我改变了值:

PermitRootLogin prohibit-password
PasswordAuthentication no

PermitRootLogin yes 
PasswordAuthentication yes

现在我被困住了,Transferring SSH keys to the VM. 当我想通过另一个客户端 ssh 时,它要求我输入密码,但我不知道。

我觉得我犯了一个愚蠢的错误。有什么办法可以恢复该更改或 ssh 吗?

编辑:我的任务是设置我们的 DevOps 管道。在这种情况下,作为一个 Linux 新手,“我锁上了门,然后把钥匙插在门下”。这没问题,因为我制作的文档帮助我在一小时内完成了一周的工作。我已经计划从头开始进行所有过程以进行验证。我仍然不会删除旧的锁定 VM,让它保持被动状态。有一天我可能会回来尝试你的建议。谢谢你的回答。

答案1

如果虚拟机上有您需要的重要数据,您可以将虚拟机的磁盘作为辅助磁盘挂载到新虚拟机上。然后,您可以通过 SSH 连接到此新虚拟机并从旧磁盘复制任何所需的数据。或者您也可以尝试恢复sshd_配置所做的更改并再次将旧磁盘作为单独的虚拟机启动。

Stackoverflow 的这篇文章详细介绍了如何将 VM 磁盘挂载到另一台 VM:https://stackoverflow.com/questions/47399105/how-to-reset-password-or-set-single-user-mode-for-serial-console-logon

答案2

它本身PermitRootLogin yes不应该禁用 ssh-keys 登录。

使用rootssh 确实是一种不好的做法。正确的做法是:

  1. 创建自定义用户
  2. 将他添加到管理员/wheel 组,以便他可以使用sudo
  3. 使用 SSH 连接到此用户

如果损坏已经造成,您无法再通过普通 SSH 进行连接,请尝试使用 Google 控制台或提供商提供的任何工具。不幸的是,如果不访问服务器,您就无法恢复它。

此问题需要在服务器端进行更多调试。也许您可以尝试使用某些特定的私有 ssh 密钥登录。您是否尝试过阅读ssh命令详细输出?

如果没有 ssh 就无法连接到服务器,那么恐怕 VM 已经丢失了。

相关内容