gcloud将ssh从一个VM计算到Google Cloud上的另一个VM

时间:2015-11-11 08:01:08

标签: ssh google-cloud-platform google-compute-engine gcloud

我正在尝试使用gcloud compute ssh命令从Google Cloud中的另一个虚拟机进入虚拟机。它失败并显示以下消息:

/usr/local/bin/../share/google/google-cloud-sdk/./lib/googlecloudsdk/compute/lib/base_classes.py:9: DeprecationWarning: the sets module is deprecated
  import sets

 Connection timed out
ERROR: (gcloud.compute.ssh) [/usr/bin/ssh] exited with return code [255]. See https://cloud.google.com/compute/docs/troubleshooting#ssherrors for troubleshooting hints.

我确保ssh键已经到位,但它仍然无法正常工作。我在这里缺少什么?

3 个答案:

答案 0 :(得分:5)

您好本网站上有完成此步骤的步骤......

本节假设您事先使用SSH连接到外部可见的实例,并使用gcloud。

在本地计算机上,使用以下命令启动ssh-agent以管理您的密钥:

me@local:~$ eval `ssh-agent`

调用ssh-add将gcloud计算公钥从本地计算机加载到代理中,并将它们用于所有SSH命令进行身份验证:

me@local:~$ ssh-add ~/.ssh/google_compute_engine

使用外部IP地址登录,同时提供-A参数以启用身份验证代理转发。

gcloud compute ssh --ssh-flag="-A" INSTANCE

来源:https://cloud.google.com/compute/docs/instances/connecting-to-instance#sshbetweeninstances

我不确定'标志',因为它不适合我,也许我有不同的操作系统或Gcloud版本,它会适合你。

答案 1 :(得分:2)

以下是我在Mac上运行以连接到Google Dataproc主VM然后从主MV上跳到工作虚拟机的步骤。我ssh到主VM获取IP。

$ gcloud compute ssh cluster-for-cameron-m Warning: Permanently added '104.197.45.35' (ECDSA) to the list of known hosts.

然后我exit编辑。我为该主机启用了转发功能。

$ nano ~/.ssh/config

Host 104.197.45.35 ForwardAgent yes

我添加了gcloud密钥。 $ ssh-add ~/.ssh/google_compute_engine

然后我通过列出ssh-add -l的关键指纹来验证它已添加。我重新连接到主VM并再次运行ssh-add -l以验证密钥确实已转发。之后,连接到工作节点工作正常。

ssh cluster-for-cameron-w-0

答案 2 :(得分:1)

关于使用SSH代理转发...

由于实例是在云上频繁创建和销毁的,因此(重新创建的)主机指纹会不断变化。如果新指纹与~/.ssh/known_hosts不匹配,SSH会自动禁用代理转发。解决方案是:

$  ssh -A -o UserKnownHostsFile=/dev/null ...