【发布时间】:2019-08-23 18:49:04
【问题描述】:
我正在尝试(通过 SSH)将一个 GCE VM 实例连接到另一个 GCE VM 实例(从现在开始将其称为机器 1 和机器 2)。
到目前为止,我已经(通过ssh-keygen -t rsa -f ~/.ssh/ssh_key)在机器 1 上生成了公钥和私钥,并将 ssh_key.pub 的内容添加到机器 2 上的 ~/.ssh/authorized_keys 文件中。
但是,每当我尝试使用以下命令通过 ssh 连接它们时:gcloud compute ssh --project [PROJECT_ID] --zone [ZONE] [Machine_2_Name] 它只是超时(连接超时。错误:(gcloud.compute.ssh)[/usr/bin/ssh] exited with return代码 [255]。)
我已经仔细检查了每个 VM 实例都有足够的磁盘空间,并且它们的防火墙设置是允许的,并且操作系统登录是未启用的。我已经阅读了答案here,但没有任何效果。
我做错了什么?如何正确地从一个 GCE VM 实例 SSH 到另一个?
【问题讨论】:
-
您的错误消息意味着没有人正在监听机器 2。仔细检查机器 2 上 sshd 正在运行并监听端口 22:superuser.com/questions/529830/…。还可以尝试添加命令行选项
--tunnel-through-iap以绕过网络问题。您对 authorized_keys 的更改可能破坏了 ssh。 -
@JohnHanley 在运行
netstat -lntu后我看到 "tcp6 - 0 - 0 :::22 :::* LISTEN" ,所以似乎端口 22 正在监听。添加--tunnel-through-iap后,我收到错误“连接时出错 [4033: u'not authorized']” -
那是你的问题。您在 gcloud 中使用的账户没有登录计算引擎的 IAM 权限。 cloud.google.com/compute/docs/access/iam
-
好的,谢谢,我会联系我的系统管理员解决这个问题。如果还是不行我会回复的。感谢您的帮助!
标签: ssh google-cloud-platform virtual-machine google-compute-engine