首页 文章

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

提问于
浏览
0

从快照恢复磁盘后,我无法访问其中一个虚拟机(此处称为myvm1) . 这是我昨天做的(工作得很好):

  • 我制作了disk1的快照 .

  • 我使用上面创建的快照创建了一个名为disk2的新磁盘 .

  • 我通过Google控制台将磁盘附加到myvm1 .

  • 我卸载了disk1并挂载了disk2 .

  • 我删除了disk1 .

一切正常,磁盘2上的数据库数据可以根据需要访问 . 该磁盘上没有太多其他内容 .

今天,我想做的是将disk2“重命名”为disk1(以避免将来我们的Terraform设置出现问题) . 我这样做是通过执行以下操作:

  • 我制作了disk2的快照 .

  • 我使用上面的快照创建了一个新磁盘,称之为disk1 .

  • 我使用终端将磁盘连接到myvm1: gcloud compute --project=myproject instances attach-disk myvm1 --disk disk1

在此之后,当我尝试ssh到myvm1(卸载并挂载)时,我得到了一个

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

我尝试了以下解决方案/调查:

  • 重复停止和启动VM(比同一项目中的其他VM花费相当长的时间)

  • 分离disk1(并重新附加)

其他信息:

同一项目中的

  • 其他虚拟机仍可通过ssh访问 .

  • 我昨天或今天没有对VM做任何其他事情,但我上面写的是什么 . 该系统在昨天和现在之间没有被使用(它为了省钱而关闭了一整夜) .

  • 使用Google控制台SSH不起作用,但它也不适用于其他虚拟机,因为我们使用私钥连接 .

  • "The instance is booting up and sshd is not yet running." - 它被列为RUNNING .

  • "The instance is not running sshd."我没有手动禁用sshd .

  • "sshd is listening on a port other than the one you are connecting to."我没有对端口进行任何更改 .

  • "There is no firewall rule allowing SSH access on the port."此外,在"Firewall rules and routes details"下启用端口22 . 此外,防火墙规则与同一项目中的其他VM相同 .

  • "The firewall rule allowing SSH access is enabled, but is not configured to allow connections from GCP Console services."我们不要't want to be able to connect via GCP Console so that doesn' t .

  • "The instance is shut down." - 它正在运行 .

ssh-call的调试信息:

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只是一个沙盒系统 .

1 回答

  • 0

    端口22错误可能来自两个来源:防火墙未在GCP上正确设置,或端口22未接受来自实例的SSH连接 . 假设防火墙已正确设置,因为它适用于其他实例,请尝试使用串行控制台登录并检查iptable .

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

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

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

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

    转到Vm实例,再次单击您的Vm,编辑,并使用以下内容填充自定义元数据部分:

    关键: startup-script

    Value :

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

    (这是一个创建用户名的脚本:pamela和密码:pamela5,稍后您将使用它 . 出于安全考虑,请使用其他内容)

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

相关问题