【发布时间】:2018-04-29 05:45:26
【问题描述】:
我在这里急需帮助。我有一个托管许多网站的计算引擎实例。这些是我采取的步骤:
转到 Compute Engine > 快照并为我的实例拍摄快照
点击新创建的快照,然后点击创建实例。
新实例拥有当前运行实例的所有配置
然后当我尝试通过 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
注意:将 USERNAME 和 PASSWORD 的值更改为您选择的名称和密码。
5.) 通过选中 SSH 按钮下方的框启用“启用连接到串行端口”。
6.) 单击保存,然后单击页面顶部的重置。等待一段时间让实例重新启动。
7.) 单击页面中的“连接到串行端口”。在新窗口中,您可能需要稍等片刻,然后按一次键盘的 Enter;然后,您应该会看到登录提示。
8.) 使用您提供的用户名和密码登录。
注意:为了您的数据安全,请不要分享您的任何密码和用户名。
由于上述步骤对我没有帮助,Google 支持代表查看了日志但没有发现任何问题,因此她建议按照本指南 https://cloud.google.com/compute/docs/troubleshooting/troubleshooting-ssh#use_your_disk_on_a_new_instance 调试 SSH,我将在有时间时进行。感觉自己在写论文。会持续发布
【问题讨论】:
-
别慌,只要不删除磁盘,数据就不会丢失。一些建议:1)您可以尝试克隆损坏的实例吗? 2) 创建另一个实例,通过内部 IP ssh 到损坏的实例并检查 sshd。
-
不,我并不恐慌,谢谢:)。我正在谈论我当前活动实例的克隆,尽管如果我突然无法 ssh 到我的活动实例,我会感到恐慌。要验证:1)您可以尝试克隆损坏的实例吗?损坏的实例是从实时实例中克隆的,我尝试从实时实例中克隆很多,但克隆的实例从未对我有用 2. 创建另一个实例,通过内部 IP SSH 到损坏的实例并检查 sshd 我将尝试用谷歌搜索如何去做这个。截至目前,我正在联系 Google 支持,看看他们是否可以帮助我解决这个问题。手指交叉