繁体   English   中英

无法 SSH 进入 Google Cloud VM

[英]Can't SSH into Google Cloud VM

我能够成功地将 SSH 安装到我昨天设置的 Google Cloud VM 中,但今天由于某种原因我不能,而且我没有弄乱任何设置,尤其是防火墙设置。 它现在一直给我这些错误:

通过 Cloud Identity-Aware Proxy 连接失败代码:4003 原因:无法连接到后端 您可以在不使用 Cloud Identity-Aware 代理的情况下进行连接。

然后,当我单击“在没有身份识别代理的情况下连接”时,我收到以下错误:

连接失败 我们无法在端口 22 上连接到 VM。了解有关此问题可能原因的更多信息。

我不知道发生了什么。 昨天还好好的,现在不行了。

基于这些错误消息,我猜您的项目启用了 Identity-Aware Proxy (IAP) ,这有时可能会影响 SSH 进入实例的能力,具体取决于配置。

为了排除这种情况,您可以尝试以下方法:

首先,尝试禁用 Cloud Identity-Aware Proxy 并通过 web 控制台连接到 VM 实例。

之后,检查日志:

  • Go 到Compute Engine -> VM instances -> 点击 NAME_OF_YOUR_VM -> 在VM instance details找到Logs部分,然后点击Serial port 1 (console)
  • 重新启动您的虚拟机实例。
  • 检查完整的启动日志是否有任何错误或/和警告。

如果您的 VM 实例未启动,请按照文档常规故障排除验证您的磁盘是否具有有效的文件系统和有效的主引导记录 (MBR)。

如果您发现与磁盘空间相关的错误/警告,您可以尝试根据Resizing a zonal persistent disk文档调整其大小,也可以参考Recovering an inaccessible instance or a full boot disk文章:

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

否则尝试通过串行控制台访问您的 VM 实例:

  • 使用gcloud命令启用串行控制台连接

     gcloud compute instances add-metadata NAME_OF_YOUR_VM_INSTANCE \ --metadata serial-port-enable=TRUE

    或 go 到Compute Engine -> VM instances -> 点击NAME_OF_YOUR_VM_INSTANCE -> 点击EDIT -> go 到Remote access部分并选中Enable connecting to serial ports

  • 创建临时用户和密码以登录:关闭您的虚拟机并通过在Custom metadatastartup-script和值部分添加来设置启动脚本

     useradd --groups google_sudoers tempuser echo "tempuser:password" | chpasswd

    然后启动你的虚拟机。

  • 使用gcloud命令通过串口连接到你的虚拟机

     gcloud compute connect-to-serial-port NAME_OF_YOUR_VM_INSTANCE

    或 go 到Compute Engine -> VM instances -> 点击NAME_OF_YOUR_VM_INSTANCE -> 并点击Connect to serial console

  • 检查出了什么问题。

  • 使用gcloud命令禁用通过串口的访问

     gcloud compute instances add-metadata NAME_OF_YOUR_VM_INSTANCE \ --metadata serial-port-enable=FALSE

    或 go 到Compute Engine -> VM instances -> 点击NAME_OF_YOUR_VM_INSTANCE -> 点击EDIT -> go 到Remote access部分并取消选中Enable connecting to serial ports 请记住,根据文档Interacting with the serial console

    注意:交互式串行控制台不支持基于 IP 的访问限制,例如 IP 白名单。 如果您在实例上启用交互式串行控制台,客户端可以尝试从任何 IP 地址连接到该实例。 如果知道正确的 SSH 密钥、用户名、项目 ID、区域和实例名称,任何人都可以连接到该实例。 使用防火墙规则来控制对您的网络和特定端口的访问。

如果您无法通过串行控制台进行连接,请尝试按照文档故障排除 SSH部分检查 VM 实例而不关闭它并检查另一个 VM 上的 VM 磁盘。 同样的方式,您可以将数据传输到另一个工作的 VM 实例。

我在运行作曲家更新时遇到了同样的问题。

在我的情况下,重新启动 VM-Instance 已经解决了它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM