使用Google Developer Console“计算引擎”我试图通过SSH连接到Google VM实例。 它不起作用。由于“网络关联”的问题,我在创建实例时遇到了麻烦。 这是我的问题和解决方案:Why is "Create" disabled in Google Compute Engine VM instances?
现在我的SSH问题的可能原因是什么?
答案 0 :(得分:2)
原来是防火墙问题。不像"默认"网络,当您手动添加一个网络时,它不会自动打开端口22以使ssh工作。
解决此问题的最简单方法是通过Google Developer Console" Networking"页。如果您转到网络部分并选择您正在使用的自定义网络,则可以选择添加防火墙规则。对我来说不幸的是,在我使用Google Cloud Shell之前我没有弄明白这一点......这就是我如何做到这一点的长期"这实际上会给出您可以更好地控制和洞察整个Google VM管理模型。它还将确保您可以通过Google Cloud Shell进行连接,以备将来再次使用时使用:
在"计算引擎"转到VM部分并选择您的VM。在屏幕的左上角是一个" SSH"按钮和省略号(" ...")按钮。点击" ..."并选择"查看gcloud命令"。该窗口打开后,将命令复制到剪贴板。然后关闭窗口并单击"> _" (激活Google Cloud Shell)按钮位于屏幕的右上角。
加载shell时,粘贴命令(使用Ctrl + V)。尝试连接后,如果您遇到此防火墙问题,它最终会超时。
要在您正在使用的网络上显示防火墙规则,请输入以下内容:
gcloud compute firewall-rules list
要更详细地检查规则,请使用以下命令:
gcloud compute firewall-rules describe [rule name]
检查后缀为" allow-ssh"的规则,或更具体地说是打开端口22的规则。可能缺少。
如果你实际上是在"默认"网络,您可以使用您在Google文档中找到的命令:
gcloud compute firewall-rules create default-allow-ssh --allow tcp:22
但是,如果您在备用网络上,请使用此更明确的命令:
gcloud compute firewall-rules create [network name]-allow-ssh --allow tcp:22 --network [network name] --source-ranges 0.0.0.0/0 --description "Allow SSH from anywhere."
将[网络名称]替换为文字值。
执行后,再次尝试连接命令。它现在应该工作了!