如何在Google Compute Engine上创建的两个实例之间进行ssh?

ROB*_* AI 8 ssh google-compute-engine google-cloud-platform

我在Google Compute Engine上创建了两个实例:

Instance A
hostname: robot-a
ip addr: 10.111.0.11

Instance B
hostname: robot-b
ip addr: 10.222.0.22
Run Code Online (Sandbox Code Playgroud)

我可以从本地计算机登录到这两个实例.但是如何从其中一个实例登录到另一个实例呢?


我尝试了以下,但失败了:

robot-a$ ssh robot-b
The authenticity of host 'robot-b (10.111.0.11)' can't be established.
ECDSA key fingerprint is 3a:1a:f1:23:6a:83:ab:db:d8:a1:e8:7d:f5:65:c8:c5.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'robot-b' (ECDSA) to the list of known hosts.
Permission denied (publickey).
Run Code Online (Sandbox Code Playgroud)

Nil*_*_DS 5

GCE实例默认情况下设置了gcloud。那么,最简​​单的方法就是。

gcloud compute ssh [INSTANCE_NAME] [--ZONE [INSTANCE_ZONE]]
Run Code Online (Sandbox Code Playgroud)

可能需要使用区域标志,因为在该实例中之前尚未运行过gcloud init。


Dag*_*ang 1

请参阅使用 SSH 密钥对管理实例访问。基本上,如果您需要从 robots-a 到 robots-b,您需要在 robots-a 上生成密钥对,将 robots-a 的公钥添加到 robots-b(通过登录到 robots-b,然后编辑 . ssh/authorized_keys 文件),然后 robots-b 识别 robots-a。

然后通过名称访问:

robot-a$ ssh robot-b

或通过内部IP:

robot-a$ ssh 10.222.0.22

更一般的帮助:如何设置 ssh,这样就不会要求您输入密码