通过SSH将一个GCE实例连接到另一个实例时出现问题

时间:2019-08-23 18:49:04

标签: ssh google-cloud-platform virtual-machine google-compute-engine

我正在尝试(通过SSH)将一个GCE VM实例连接到另一个GCE VM实例(从现在开始将其分别称为Machine 1和Machine 2)。

到目前为止,我已经在机器1上(通过ssh-keygen -t rsa -f ~/.ssh/ssh_key生成了一个公钥和私钥,并将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]已退出并返回代码[255]。)

我已经仔细检查了每个VM实例是否有足够的磁盘空间,并且它们的防火墙设置是允许的,并且未启用 操作系统登录。我已经阅读了答案here,但没有任何帮助。

我在做什么错?如何从一个GCE VM实例正确地SSH到另一个?

2 个答案:

答案 0 :(得分:0)

我在同一边测试了相同的场景,得到的结果与您所说的相同。然后,我在计算机内部运行了此命令以调试SSH进程,以尝试缩小问题范围:

gcloud compute ssh YOUR_INSTANCE_NAME --zone ZONE --ssh-flag="-vvv" 

然后我得到了这个结果:

debug1: connect to address 35.x.x.x port 22: Connection timed out
ssh: connect to host 35.x.x.x port 22: Connection timed out

因此,这意味着实例1无法连接到实例2的外部IP地址。我仅添加了一个新的firewall rule,它可以正常工作。

运行上述命令后,如果看到任何permission denied消息,则表明您没有将公钥正确复制到源计算机。

答案 1 :(得分:0)

我遇到的问题是每个VM都使用具有不同防火墙配置的不同网络/子网。使用相同的网络/子网建立一个网络后,我可以通过

轻松地将它们彼此隔离

username@machine1:~$ ssh machine2