【问题标题】:Can't SSH connect to Google Cloud Compute Engine after rebooting重启后无法通过 SSH 连接到 Google Cloud Compute Engine
【发布时间】:2020-04-25 03:03:05
【问题描述】:

我刚刚重新启动了我的谷歌云计算引擎实例,现在我无法通过 SSH 登录它。在重新启动之前,它工作正常。我尝试完全停止它,然后重新开始。上面有一个网络服务器,如果我尝试访问任何 API 方法,我会超时。

如果我尝试从控制台网站登录:

如果我尝试从终端登录:

ssh: connect to host 104.197.20.65 port 22: Operation timed out
ERROR: (gcloud.compute.ssh) [/usr/bin/ssh] exited with return code [255]. See https://cloud.google.com/compute/docs/troubleshooting#ssherrors for troubleshooting hints.

怎么了?

【问题讨论】:

标签: ssh centos google-compute-engine google-cloud-console


【解决方案1】:

正如错误消息所示,首先要做的是检查防火墙规则。必须有一条规则允许从任何 ip (0.0.0.0/0) 通过端口 22 进行连接。我假设您的实例的 ssh 之前工作过,所以它可以是两件事。

  1. 该规则正在应用到某个网络,关闭时VM的网络配置发生了变化。

  2. 规则未应用到虚拟机,可能在子网中,正在关闭通信。

为了简化解决方案:

A- 将网络标签添加到您的虚拟机。 (例如 ssh-conn) https://cloud.google.com/compute/docs/vpc/add-remove-network-tags

B- 创建一个规则以允许来自任何 ip 的连接并将其应用于先前创建的网络标记。 https://cloud.google.com/compute/docs/vpc/using-firewalls

【讨论】:

    【解决方案2】:

    我遇到了同样的问题,尝试了很多方法,但都没有奏效。

    但下面的方法对我有用:

    1. 通过串行控制台连接到实例。
    2. vi /etc/ssh/sshd_config,删除Port 22之前的哈希标签,像这样:
    Port 22
    #AddressFamily any
    #ListenAddress 0.0.0.0
    #ListenAddress ::
    

    希望它也对你有用。

    【讨论】: