首页 > 解决方案 > 在 GCP 中暂停和恢复虚拟机

问题描述

我在使用 Google Cloud Platform 时经常遇到问题。为了说明发生了什么,我创建了一个新 VM,通过 成功连接到它gcloud beta compute ssh,并暂停了该实例。

暂停后,我恢复了它,但无法再通过 ssh 连接到它,我运行了命令:

gcloud beta compute ssh --zone "us-central1-a" "test-vm" --project "my-project" --ssh-flag="-vvv"

并收到以下输出:

OpenSSH_7.6p1 Ubuntu-4ubuntu0.3, OpenSSL 1.0.2n  7 Dec 2017
debug1: Reading configuration data /home/guilherme/.ssh/config
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug2: resolving "34.66.57.82" port 22
debug2: ssh_connect_direct: needpriv 0
debug1: Connecting to 34.66.57.82 [34.66.57.82] port 22.
debug1: connect to address 34.66.57.82 port 22: Connection timed out
ssh: connect to host 34.66.57.82 port 22: Connection timed out
ERROR: (gcloud.beta.compute.ssh) [/usr/bin/ssh] exited with return code [255].

暂停/恢复是在 GCP 平台上的浏览器中完成的。

由于这个问题,我无法暂停任何虚拟机,因为我每次都“丢失”它。有谁知道如何正确暂停它?谢谢

标签: google-cloud-platformssh

解决方案


如果设置“gcloud”拒绝 ssh 连接发生变化,您必须通过以下方式更新元数据中的 ssh 密钥:

sudo gcloud compute config-ssh

如果这抱怨存储 ssh 密钥条目的配置文件中有不同的条目,~/.ssh/config,删除此文件并再次执行上述命令。

如果系统内部防火墙屏蔽了22端口,可以尝试以下步骤修复:

  1. 在 GCP Console 中,转到 VM 实例。
  2. 选择实例并单击编辑。
  3. 找到自定义元数据选项并单击添加项目并键入启动脚本作为键并复制并粘贴命令 sudo ufw allow ssh 作为值。此命令将为 SSH 启用端口 22。

针对您的问题推荐此主题SSH 故障排除


推荐阅读