无法通过 SSH 进入 Google Cloud VM,如何调试?

无法通过 SSH 进入 Google Cloud VM,如何调试?

我在 Google Cloud VM 上运行了一个 VNC 服务器。它出现了一个奇怪的错误“无法打开 Chrome,内存不足”。所以我重新启动了。

VNC 服务器是一个设置为自动重启的 docker 容器。

现在,无论我“重置”或“停止”实例多少次,SSH 登录都会无限循环并超时。并且 VNC 服务器出现 404 错误。

如果我无法 ssh,我该如何调试?

答案1

检查虚拟机上发生的情况的最简单方法是转到Compute Engine-> VM instances-> 单击 NAME_OF_YOUR_VM -> 在VM instance details查找部分日志并点击Serial port 1 (console),你会发现很多日志消息,你应该主要搜索“没有剩余空间”错误。你可以在文档中找到处理“无法连接,正在重试...”错误

实例的启动磁盘已用尽可用空间。建立连接后,客户机环境会使用当前会话使用的公钥 SSH 密钥更新 ~/.ssh/authorized_keys 文件。如果磁盘已用尽可用空间,则更新失败。要确定磁盘空间问题,检查实例的串行控制台输出并查找“没有剩余空间”错误

如果您发现“没有剩余空间”错误消息,请按照以下说明操作:

  • 调整大小实例的启动永久磁盘以增加其大小。如果实例使用的操作系统映像支持自动调整大小,这是最简单的选择,因为在实例重新启动后,操作系统会自动调整根分区的大小以匹配新的大小。
  • 如果你知道哪些文件正在使用磁盘空间,创建启动脚本删除不必要的文件并释放空间以供
    实例启动。重新启动实例,以便脚本执行
    并清除文件。请务必使用正确的命令并
    删除正确的文件。实例启动后,您可以通过 SSH 连接到实例,将启动脚本元
    数据项重新设置,以免继续删除文件。
  • 有关如何访问实例磁盘的信息,请参阅使用 Compute Engine 的一般技巧

在某些情况下,您应该遵循恢复无法访问的实例或完整的启动磁盘指南:

如果实例的磁盘空间完全不足或者如果它没有运行Linux客户环境,那么自动调整根文件系统的大小是不可能的,即使您增加了支持它的持久磁盘的大小。如果您无法连接到您的实例,或者您的启动磁盘已满并且您无法调整其大小,您必须创建一个新实例并从快照重新创建启动磁盘才能调整其大小

您可以找到分步说明这里

如果你的问题与磁盘空间无关你可以尝试用故障排除脚本用于 Compute Engine 识别 Google 提供的基于 Linux 的实例的 SSH 登录/可访问性问题。

此外,您还可以尝试通过串行控制台连接到您的虚拟机通过遵循指导,但请记住:

交互式串行控制台不支持基于 IP 的访问限制(例如 IP 白名单)。如果您在实例上启用交互式串行控制台,客户端可以尝试从任何 IP 地址连接到该实例。

更多详细信息,请参阅文档

请随时在您的问题中提供更多详细信息,我会更新我的答案。

相关内容