我正在尝试(通过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到另一个?
答案 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