如何在2个Google Cloud Debian实例之间进行SSH

如何在2个Google Cloud Debian实例之间进行SSH,ssh,google-compute-engine,ansible-2.x,Ssh,Google Compute Engine,Ansible 2.x,我已经在我的GCE Debian VM实例(1)上安装了ansible。现在我想连接到另一个GCE Debian VM实例(2)。 我已在实例1上生成公钥,并将.pub密钥手动复制到实例2的授权密钥。 但是,当我尝试从1到2执行ssh时,它会拒绝许可 还有别的办法吗?我对此有点陌生,正在努力学习。 有没有分步指南?还有,ssh的确切ip地址是什么?实例启动时,GCE将使用内部IP还是外部IP。如果您在google云平台中有两个实例,那么很简单,您会自动安装来宾环境(gcloud命令行),使用它,

我已经在我的GCE Debian VM实例(1)上安装了ansible。现在我想连接到另一个GCE Debian VM实例(2)。 我已在实例1上生成公钥,并将.pub密钥手动复制到实例2的授权密钥。 但是,当我尝试从1到2执行ssh时,它会拒绝许可

还有别的办法吗?我对此有点陌生,正在努力学习。
有没有分步指南?还有,ssh的确切ip地址是什么?实例启动时,GCE将使用内部IP还是外部IP。

如果您在google云平台中有两个实例,那么很简单,您会自动安装来宾环境(gcloud命令行),使用它,您可以通过项目中的所有ssh进行ssh:

只需在实例A内部运行以下命令行即可到达实例B

[user@Instance(1) ]$gcloud计算ssh实例(2)--区域[zone]


如果它不工作,请告诉我,并验证您的防火墙规则是否允许内部流量。

我也是Ansible用户,我管理一组计算引擎服务器。我的情景与你的情景非常接近,所以希望这也能对你起作用。为了让这项工作顺利进行,您只需要认识到ssh公钥是元数据,可以用来告诉GCE在创建实例时创建用户帐户


SSH公钥是项目范围的元数据 要获得所需的内容,应将ssh公钥添加到计算引擎下的元数据部分。我的钥匙是这样的:

ssh-rsa AAAAB3<long key sequence shortened>Uxh bob
现在Ansible将连接到您的剧本中提到的服务器,并尝试使用本地私钥协商ssh连接,该连接应能正常工作,因为GCE将在创建VM时为您进行设置。此外,由于主机名检查处于关闭状态,您可以随时重建VM


再说一遍 我真的建议您从少量安全的计算机上运行ansible,不要将私钥放在云服务器上。如果您确实需要在服务器之间使用ssh,请查看ssh代理如何传递标识。一个好的开始是


你说元数据在哪里? 我有点掩饰了这一点,但这里有一张图片让你开始


从这里开始,您只需按照添加公钥的选项进行操作。别忘了这是可行的,因为密钥的第三部分是您希望GCE和Ansible在运行plays时使用的用户名。

谢谢您,Alioua,这是可行的,但稍加修改-[user@Instance(1) ]$gcloud compute--project“[project name]”ssh--zone“[zone]”“[Instance(2)]”它成功了!!非常感谢Chris提供的详细信息,非常有帮助!!!乒乓球对这两种情况都有效。现在我们将探索更多。如果我在某处陷入困境,希望能得到你的帮助:-)@roy很高兴这对你有用。一开始对我来说很痛苦。ssh代理也非常有用,请检查一下。总是提供帮助!
ansible-playbook -ssh-common-args='-o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no' -u bob