google-cloud-platform - 在 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 平台上的浏览器中完成的。
由于这个问题,我无法暂停任何虚拟机,因为我每次都“丢失”它。有谁知道如何正确暂停它?谢谢
解决方案
如果设置“gcloud”拒绝 ssh 连接发生变化,您必须通过以下方式更新元数据中的 ssh 密钥:
sudo gcloud compute config-ssh
如果这抱怨存储 ssh 密钥条目的配置文件中有不同的条目,~/.ssh/config,删除此文件并再次执行上述命令。
如果系统内部防火墙屏蔽了22端口,可以尝试以下步骤修复:
- 在 GCP Console 中,转到 VM 实例。
- 选择实例并单击编辑。
- 找到自定义元数据选项并单击添加项目并键入启动脚本作为键并复制并粘贴命令 sudo ufw allow ssh 作为值。此命令将为 SSH 启用端口 22。
针对您的问题推荐此主题SSH 故障排除。
推荐阅读
- c# - EntityFramework Core 在内存中缓存数据,保持异步操作
- javascript - Codemirror 自动完成
- sql-server - 创建在本地目录中生成 csv 文件的存储过程
- powershell - 如何将模拟的 PSCustomObject 作为 SQLConnection 参数传递
- bash - 我是否应该在 bash 脚本中转义变量
- clojure - 揭开 Clojure / ClojureScript 入门的神秘面纱
- excel - 将宏分配给列表框 OnSelectionChange(不是 OnAction)
- ios - 如何在 swift 中的 Uibutton 中运行异步函数
- javascript - 与sreenwidth相关的左侧或右侧的动态导航菜单boostrap
- angular - 如何在角度选择文件之前和之后启用/禁用按钮