为什么 google CloudShell 没有与我的 vm 实例相同的子网 IP 地址?无法 ssh,但可以获取串行端口登录:提示

为什么 google CloudShell 没有与我的 vm 实例相同的子网 IP 地址?无法 ssh,但可以获取串行端口登录:提示

虚拟机实例已启动并正在运行,可以获取串行端口登录:提示,但无法通过 ssh 连接。Google 对此行为的原因是什么?

从设计上来说,VM 实例没有外部 IP 地址。

我的 google cloud shell 实例没有我的 VM 实例所具有的 10.240.0.0/16 IP 地址,因此我认为这就是我无法通过 cloud shell 进行 ssh 的原因。为什么实例需要从基于 webbrowser 的 Cloud Shell 内部访问互联网?
ERROR: (gcloud.beta.compute.ssh) Instance [instance-centos7] in zone [us-zone-somewhere] does not have an external IP address, so you cannot SSH into it. To add an external IP address to the in stance, use [gcloud compute instances add-access-config].

已重新启动 Cloud Shell 实例,希望它能够使用正确的 IP 地址重建。

项目范围的 ssh 密钥不会被阻止。

在 Web 浏览器中,所有 SSH 选项均被禁用并显示为灰色。

我可以跟踪串行端口输出以验证它是否停止和启动但不能与它交互,因为我没有设置密码。

多年来,我有几个没有公共 IP 地址的虚拟实例,但能够正常连接以便在允许从互联网访问之前保护机器安全。

根据 10.240.0.0/16 ip 子网,似乎我有一个传统网络

想要一个虚拟机主机基础机器,它不能直接访问互联网,但 LXC 容器可以获得公共 IP。

答案1

Cloud Shell 仅提供以下有限的 shell 供交互式使用文档

Google Cloud Shell SSH 连接允许用户从 Google Cloud Platform Console 连接到 Google Compute Engine 虚拟机。它与 Compute Engine VM 实例建立的 SSH 连接不同,因为它们是在另一个 VPC 网络内部建立的,并且可能位于防火墙后面,如果设置不正确,可能会阻止连接。

可以使用或不使用外部 IP 地址来创建 Google Compute Engine 实例。创建没有外部 IP 地址的实例可提供高级别的安全性,因为无法从外部直接访问该实例。我们仍然可以从公共网络连接到实例内部 IP 地址,但只能通过可以访问实例内部 IP 地址的其他方法。这些方法包括“通过可以访问内部 IP 地址的 VPN 连接进行连接”或通过“堡垒主机”实例进行连接,如下所示文档

确保在创建 VM 实例时未启用“阻止项目范围的 SSH 密钥”选项,否则实例将根据以下说明忽略项目范围的 SSH 密钥:文档

相关内容