克隆后无法通过 SSH 访问 Google Cloud 实例

tra*_*ong 6 google-compute-engine

我在这里迫切需要帮助。我有一个托管许多网站的计算引擎实例。这些是我采取的步骤:

  1. 转到 Compute Engine > Snapshots 并拍摄我的实例的快照

  2. 单击新创建的快照,然后单击创建实例。

  3. 新实例具有当前运行实例的所有配置

然后当我尝试通过 SSH 访问新实例时,它不起作用。错误信息:

“连接失败我们无法在端口 22 上连接到 VM。了解有关此问题可能原因的更多信息。”

点击了解更多让我进入https://cloud.google.com/compute/docs/ssh-in-browser#ssherror

实例正在启动并且 sshd 尚未运行- 不知道如何检查

实例未运行 sshd - 也不知道如何检查

sshd 正在侦听与您要连接的端口不同的端口- 我当前的实例在端口 22 上运行 ssh,所以我想这没问题吗?

没有防火墙规则允许在端口上进行 SSH 访问- 同样,我当前的实例正在运行 ssh,所以我认为这不是因为防火墙,对吗?

允许 SSH 访问的防火墙规则已启用,但未配置为允许来自 GCP Console 服务的连接。- 同上

实例已关闭- 实例仍在运行。

奇怪的是,如果我从头开始创建一个新实例,然后执行上述步骤克隆到一个新实例,那么该新实例可以通过 SSH 正常访问。

如果可能,谁能告诉我如何解决这个问题?或者告诉我如何查看日志,检查出了什么问题等,因为我试图用谷歌搜索但对所有术语或在哪里可以找到特定的东西感到非常困惑。对不起,文字墙。谢谢

**

编辑 #1

**:我得到了 Google 的技术支持。下面的步骤可能对其他人有帮助,但对我没有帮助,因为当我到达第 7 步时,我一直在等待,无法进入登录页面。

1.) 转到 VM 实例页面,然后单击 VM 的实例名称。

2.) 单击页面顶部的编辑按钮。

3.) 在自定义元数据下,单击添加项目。

4.) 将“Key”设置为“startup-script”并将“Value”设置为此脚本:

#! /bin/bash 

useradd -G sudo USERNAME 

echo 'USERNAME:PASSWORD' | chpasswd
Run Code Online (Sandbox Code Playgroud)

注意:将 USERNAME 和 PASSWORD 的值更改为您选择的名称和密码。

5.) 通过选中 SSH 按钮下方的框启用“启用连接到串行端口”。

6.) 单击保存,然后单击页面顶部的重置。等待实例重启。

7.) 点击页面中的“连接到串口”。在新窗口中,您可能需要稍等片刻,然后按一下键盘上的 Enter 键;然后,您应该会看到登录提示。

8.) 使用您提供的用户名和密码登录。

注意:为了您的数据安全,请不要共享您的任何密码和用户名。

由于上述步骤无法帮助我,Google 支持代表查看了日志但没有发现任何问题,她建议按照本指南https://cloud.google.com/compute/docs/troubleshooting/调试 SSH故障排除-ssh#use_your_disk_on_a_new_instance我会在有时间的时候做。感觉自己在写论文。会持续发布

JMD*_*JMD 1

您可以遵循的故障排除步骤是:

\n\n
    \n
  1. 使用串行控制台查看实例日志并检查从快照创建的新实例是否无法启动到 ssh 守护程序启动的适当运行级别。如果 sshd 未启动,您将无法通过 ssh 访问您的实例。
  2. \n
  3. 如果不影响生产,您可以尝试重新启动实例并再次尝试获得 ssh 访问权限。可能是某些问题导致实例无法正常启动,重新启动可以修复它。

  4. \n
  5. 如果之前的实例未正确创建,您可以尝试从快照创建另一个 VM 实例\xe2\x80\x99。

  6. \n
  7. 如果从快照创建新的 VM 实例不能解决问题,则可能是快照本身未正确创建。您可以阅读本文档指南部分Understanding snapshot best practices,并尝试从中创建另一个快照和 VM 实例。
  8. \n
\n