IAP到VM的隧道

时间:2019-09-20 20:21:58

标签: google-compute-engine

我有一个关于Compute VM及其相关特权的问题。我在项目级别拥有“所有者”权限。我创建了一个VM,但无法为其分配外部IP地址。提到Google云文档后,看来我仍然可以使用VPN或IAP连接到该虚拟机。单击虚拟机旁边的SSH链接后,我看到它使用Cloud-IAP隧道,但连接失败。

这是错误消息 找不到外部IP地址;默认使用IAP隧道。

ERROR: (gcloud.compute.start-iap-tunnel) Error while connecting [4003: u'failed to connect to backend'].
ssh_exchange_identification: Connection closed by remote host
ERROR: (gcloud.compute.ssh) [/usr/bin/ssh] exited with return code [255].

如何连接到该VM?

感谢您的帮助

4 个答案:

答案 0 :(得分:1)

  

防火墙规则,配置为允许从Cloud IAP的TCP转发网络块35.235.240.0/20访问计算机的所有端口。这样可以确保允许从Cloud IAP的TCP转发IP地址到资源上的admin服务的TCP端口进行连接。请注意,如果将default-allow-ssh和default-allow-rdp默认规则应用于用于SSH和RDP的端口,则可能不需要调整防火墙规则。

您可能已经拥有default-allow-ssh而不是尝试:

gcloud compute start-iap-tunnel stage-es-kibana 5601 --local-host-port=localhost:5601

通过额外的ssh层跳转到端口:

gcloud compute ssh stage-es-kibana -- -N -L 5601:localhost:5601

或在主机/端口stage-es-kibana:5601和子网35.235.240.0/20之间打开Goog​​le防火墙。

答案 1 :(得分:0)

作为项目所有者固有的“计算管理员”和“计算网络管理员”角色, 您应该能够将外部IP地址添加到您的VM。但是,您可以通过cloud shell尝试以下命令。并共享显示的错误消息。这将添加一个ephemeral external IP address to your vm

$ gcloud compute instances add-access-config [INSTANCE NAME] --zone=[ZONE] --access-config-name "[ACCESS_CONFIG_NAME]"

要不使用外部IP SSH,还必须启用Cloud IAP,请检查the document,其中包括防火墙,“ IAP保护的隧道用户”角色和隧道。

答案 2 :(得分:0)

似乎GCP CE需要在其RUNNING状态后初始化SSH和其他服务。 在启动虚拟机之后和使用IAP隧道进行SSH之前,我通过添加sleep(60秒)命令来使用变通方法。

答案 3 :(得分:0)

这是一个权限问题。 您正在尝试通过Google的IAP代理进入vm。 您无权创建从计算机到代理服务器的隧道。

您需要具有"roles/iap.tunnelResourceAccessor"角色才能SSH到您的虚拟机: