恢复快照后,Google Cloud VM上的连接被拒绝

时间:2018-09-06 12:17:37

标签: ssh google-cloud-platform google-compute-engine snapshot

从快照还原磁盘后,访问我的一个虚拟机(在此称为myvm1)时遇到问题。这是我昨天所做的(效果很好):

  • 我制作了disk1的快照。
  • 我使用上面创建的快照创建了一个名为disk2的新磁盘。
  • 我通过Google控制台将磁盘连接到了myvm1。
  • 我卸载了disk1,然后装载了disk2。
  • 我删除了disk1。

一切正常,并且可以根据需要访问disk2上的数据库数据。该磁盘上没有太多其他东西。

今天,我要做的是将disk2重命名为disk1(以避免将来Terraform设置出现问题)。我通过执行以下操作来做到这一点:

  • 我制作了disk2的快照。
  • 我使用上面的快照创建了一个新磁盘,称为disk1。
  • 我使用终端将磁盘连接到myvm1: gcloud compute --project=myproject instances attach-disk myvm1 --disk disk1

此后,当我尝试ssh进入myvm1(以卸载和挂载)时,我得到了

ssh:连接到主机myvm1端口22:连接被拒绝

我试图通过以下方法解决此问题/调查:

  • 反复停止和启动VM(比同一项目中的其他VM花费更长的时间)
  • 分离disk1(并重新附加)

其他信息:

  • 同一项目中的其他VM仍可通过ssh访问。
  • 昨天或今天,除了对我上面写的内容之外,我对虚拟机没有做任何其他事情。该系统从昨天到现在一直没有使用(为了节省金钱,它已关闭了一整夜)。
  • 由于我们使用私钥进行连接,因此无法使用Google控制台SSH,但对于其他VM也不适用。
  • “实例正在启动,而sshd尚未运行。” -列为“正在运行”。
  • “实例未运行sshd。”我尚未手动禁用sshd。
  • “ sshd正在侦听您要连接的端口以外的端口。”我没有对端口进行任何更改。
  • “没有防火墙规则允许端口上的SSH访问。”另外,在“防火墙规则和路由详细信息”下,启用了端口22。另外,防火墙规则与同一项目中的其他VM相同。
  • “启用了允许SSH访问的防火墙规则,但未配置为允许来自GCP控制台服务的连接。”我们不希望能够通过GCP控制台进行连接,所以没关系。
  • “实例已关闭。” -它正在运行。

ssh调用的调试信息:

me@mycomputer:~/project$ ssh myvm1 -vvv
OpenSSH_7.2p2 Ubuntu-4ubuntu2.4, OpenSSL 1.0.2g  1 Mar 2016
debug1: Reading configuration data /home/me/.ssh/config
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug2: resolving "myvm1" port 22
debug2: ssh_connect_direct: needpriv 0
debug1: Connecting to myvm1 [10.23.0.3] port 22.
debug1: connect to address 10.23.0.3 port 22: Connection refused
ssh: connect to host myvm1 port 22: Connection refused

我已经看过这里提到的解决方案 Why Google Cloud Compute Engine instance gives ssh connection refused after restart? 但是由于我尚未安装/卸载任何磁盘,所以我看不出这可能是同样的问题。

非常感谢您能给我任何帮助。涉及创建新实例的解决方案无关紧要,因为我首先想知道出了什么问题,这样在生产环境中就不会发生。幸运的是,myvm1只是一个沙箱系统。

2 个答案:

答案 0 :(得分:0)

端口22错误可能来自两个来源:防火墙未在GCP上正确设置,或者端口22不接受实例中的SSH连接。假设由于防火墙可以在其他实例上正常使用而正确设置了防火墙,请尝试使用串行控制台登录并检查您的iptable

要连接到串行控制台,您将必须执行以下操作:

1)。激活“连接到串行控制台”按钮。

转到VM实例,单击您的VM,然后在“远程访问”区域中单击“编辑”,然后激活“启用连接到串行端口”,然后单击“保存”。

2)。创建用户名和密码。

转到Vm实例,再次单击您的Vm,进行编辑,并在自定义元数据部分中填写:

输入键:startup-script

值:

#!/bin/bash 
sudo useradd -G sudo pamela
sudo echo 'pamela:pamela5' | chpasswd

(这是一个创建用户名:pamela和密码:pamela5的脚本,稍后将使用。出于安全目的,请使用其他名称)

3)。需要重新启动才能使更改生效。

答案 1 :(得分:0)

我有同样的问题。我认为快照文件已损坏。