我刚刚将一些服务器更新到较新版本的gce堆栈,并且我开始遇到一些不太确定如何解决的ssh问题。我已经研究了防火墙的问题,而 ssh 文档并没有很大的帮助。
这是我目前的连接方式:
gcutil --service_version="v1" --project="myproject" ssh --zone="us-central1-a" "myproject-prod"
直到最近才起作用。我正在做一些 bash 黑客攻击,添加和删除一些 apt 和 pip 包,所以我认为它与此有关,但我真的不确定。当我尝试连接上述代码时,出现以下错误:
INFO: Running command line: ssh -o UserKnownHostsFile=/dev/null -o CheckHostIP=no -o StrictHostKeyChecking=no -i /home/user/.ssh/google_compute_engine -A -p 22 user@108.59.84.53 --
ssh: connect to host 108.59.84.53 port 22: Connection refused
我的防火墙似乎井井有条:
user@computer:~$ gcutil --project="myproject-backend" listfirewalls
+------------------------+---------+
| name | network |
+------------------------+---------+
| default-allow-internal | default |
+------------------------+---------+
| default-ssh | default |
+------------------------+---------+
| http2 | default |
+------------------------+---------+
关于如何解决此问题的任何想法或资源?
我建议先查看串行控制台并检查明显的消息,例如SSH服务启动失败。您还可以创建启动磁盘的快照 ->创建新的永久磁盘 ->将其挂载到临时实例上并查看日志/启动脚本等。
VM 是否已连接到默认网络?
如果不是,是否将正在使用的 ssh 密钥 ( /home/user/.ssh/google_compute_engine
) 输入到 VM 的元数据部分中?
我们创建了一个启动脚本来自我管理和解决 ssh 连接问题 https://github.com/GoogleCloudPlatform/compute-ssh-diagnostic-sh/