【问题标题】:Why can't I connect to a Google VM instance via SSH over a network other than "default"?为什么我不能通过“默认”以外的网络通过 SSH 连接到 Google VM 实例?
【发布时间】:2015-11-06 00:23:31
【问题描述】:

使用 Google 开发者控制台“计算引擎”我正在尝试通过 SSH 连接到 Google VM 实例。 它不起作用。由于“网络关联”的问题,我在创建实例时遇到了麻烦。 这是我的问题和解决方案:Why is "Create" disabled in Google Compute Engine VM instances?

现在导致我的 SSH 问题的可能原因是什么?

【问题讨论】:

    标签: ssh google-compute-engine


    【解决方案1】:

    原来是防火墙问题。与“默认”网络不同,当您手动添加一个时,它不会自动打开端口 22 以使 ssh 工作。

    解决此问题的最简单方法是通过 Google 开发者控制台的“网络”页面。如果您转到网络部分并选择您正在使用的自定义网络,它可以选择添加防火墙规则。对我来说不幸的是,直到我使用 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." 
    

    将 [network name] 替换为您的文字值。

    执行后,再次尝试连接命令。它现在应该可以工作了!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-07-24
      • 2020-03-26
      • 1970-01-01
      • 1970-01-01
      • 2020-12-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多