无法通过 SSH 连接到曾经正常工作的 GCP 虚拟机实例
Posted
技术标签:
【中文标题】无法通过 SSH 连接到曾经正常工作的 GCP 虚拟机实例【英文标题】:Cannot SSH into the GCP VM instances that used to work 【发布时间】:2020-12-13 09:21:28 【问题描述】:我昨天创建了几个 GCP VM 实例,它们都使用相同的配置但运行不同的任务。 我可以通过 GCP 控制台通过 SSH 连接到这些实例,它们都工作正常。 今天我想检查任务是否已完成,但我无法再通过浏览器 SSH 进入任何这些实例...错误消息显示:
Connection via Cloud Identity-Aware Proxy Failed
Code: 4010
Reason: destination read failed
You may be able to connect without using the Cloud Identity-Aware Proxy.
所以我在禁用 Cloud Identity-Award 代理的情况下重试。但随后显示:
Connection Failed
An error occurred while communicating with the SSH server. Check the server and the network configuration.
跑步
gcloud compute instances list
显示了我的所有实例,状态为RUNNING
。
但是当我跑的时候
gcloud compute instances get-serial-port-output [instance-name]
使用从上述命令返回的 [instance-name]。 (这是为了检查实例的启动盘是否已用完可用空间。) 它回来了
(gcloud.compute.instances.get-serial-port-output) Could not fetch serial port output: The resource '...' was not found
一些额外的信息: 我正在从同一个互联网(我的家庭互联网)访问 VM 实例,其他一切都相同 我是项目的所有者 我的帐户正在使用 300 美元赠金的 GCP 免费试用版 这些实例的机器类型为 c2-standard-4,并且正在使用 Linux 深度学习 gcloud 配置对我来说很合适:
$ gcloud config list
[component_manager]
disable_update_check = True
[compute]
gce_metadata_read_timeout_sec = 5
[core]
account = [my_account]
disable_usage_reporting = True
project = [my_project]
[metrics]
environment = devshell
更新: 我重置了其中一个实例,现在我可以成功地通过 SSH 连接到该实例。但是,在实例上运行的作业在重置后停止。 我想保持作业在其他实例上运行。有没有办法在不重置的情况下通过 SSH 连接到其他实例?
【问题讨论】:
仔细检查 PROJECT_ID、REGION 和您正在使用的身份。使用命令gcloud auth list
和gcloud config list
。试试gcloud compute instances list
。为了帮助您获得答案,不要说“无论如何”。准确发布您尝试过的内容和确切的错误消息。像“来自同一个互联网”这样的陈述没有帮助。除非您在家庭网关/路由器上使用静态 IP 地址(不太可能),否则您的网络可能已经改变。换句话说,要具体细节,不要假设我们可以猜测。
谢谢!我更新了帖子
【参考方案1】:
你的问题是在虚拟机端。您正在运行的任务使 ssh 服务无法接受传入连接,只有在重新启动后您才能连接。
您应该能够使用 gcloud compute instances get-serial-port-output [instance-name]
查看实例的 serial console output,但如果由于某种原因您不是你会看到输出。
您甚至可以interact with your VM (login) via the console。如果某些东西停止了 ssh 服务,这特别有用,但为此您需要登录名/密码,因此首先您必须访问 VM 或使用启动脚本添加带有密码的用户。但话又说回来 - 这需要重新启动。
在任何一种情况下,重新启动 VM 似乎都是最佳选择。但是您可以尝试通过检查日志来找出导致 ssh 服务在一段时间后停止的原因。或者您可以使用cron
和df -Th /mountpoint/path | tail -n1 >> /name_of_the_log_file.log
创建自己的(磁盘空间、内存、cpu 等)。
例如,您可以使用cron
来检查和启动 ssh 服务。
如果某些事情没有按预期工作(根据文档) - 转到 IssueTracker 并创建一个新问题以获得更多帮助。
【讨论】:
以上是关于无法通过 SSH 连接到曾经正常工作的 GCP 虚拟机实例的主要内容,如果未能解决你的问题,请参考以下文章
无法在 GCP 上打开 vm 实例的 ssh:无法连接到后端(代码:4003)
无法通过 ssh 连接到 Github,无法访问 .ssh.config
无法通过 unix 套接字从托管在不同 GCP 项目中的 App Engine 柔性环境连接到 Cloud SQL