【问题标题】:Problems connecting one GCE instance to another via SSH通过 SSH 将一个 GCE 实例连接到另一个实例时出现问题
【发布时间】:2019-08-23 18:49:04
【问题描述】:

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

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

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

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

【问题讨论】:

  • 您的错误消息意味着没有人正在监听机器 2。仔细检查机器 2 上 sshd 正在运行并监听端口 22:superuser.com/questions/529830/…。还可以尝试添加命令行选项--tunnel-through-iap 以绕过网络问题。您对 authorized_keys 的更改可能破坏了 ssh。
  • @JohnHanley 在运行 netstat -lntu 后我看到 "tcp6 - 0 - 0 :::22 :::* LISTEN" ,所以似乎端口 22 正在监听。添加 --tunnel-through-iap 后,我收到错误“连接时出错 [4033: u'not authorized']”
  • 那是你的问题。您在 gcloud 中使用的账户没有登录计算引擎的 IAM 权限。 cloud.google.com/compute/docs/access/iam
  • 好的,谢谢,我会联系我的系统管理员解决这个问题。如果还是不行我会回复的。感谢您的帮助!

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


【解决方案1】:

我遇到的问题是每个虚拟机都使用具有不同防火墙配置的不同网络/子网络。在使用相同的网络/子网络制作一个之后,我可以通过

轻松地从另一个连接到另一个

username@machine1:~$ ssh machine2

【讨论】:

    【解决方案2】:

    我在我这边测试了同样的场景,得到的结果和你说的一样。然后我在机器内部运行这个命令来调试 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消息,说明你没有正确复制公钥到源机器。

    【讨论】:

    • 我得到了完全相同的结果,所以我想这不是错误分配 SSH 密钥的问题。您是什么意思创建了新的防火墙规则?你到底改变了什么?似乎它正在尝试连接正在侦听的端口 22。谢谢
    • 作为测试,您可以创建一个临时防火墙规则并选择“全部应用”作为目标,并选择 0.0.0.0/0 作为源 IP 范围(在防火墙创建期间)。然后选择 tcp 协议并输入 22。然后单击创建按钮。此外,netstat 输出显示端口 22 正在侦听操作系统级别,而不是 GCP 端。
    • 我确实做到了,但不幸的是我得到了完全相同的错误 - 连接超时。
    • 知道为什么新的防火墙规则没有帮助吗? @Milad
    • 确保防火墙规则的优先级。编号较小的规则优先。默认值为 1000。另外,我建议您查看此文档,了解一些常见的SSH 问题。
    猜你喜欢
    • 2014-03-13
    • 2020-07-24
    • 1970-01-01
    • 2016-06-06
    • 2017-08-11
    • 1970-01-01
    • 2020-04-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多