google-cloud-platform - 无法登录 GCP 虚拟机 : kex_exchange_identification: Connection closed by remote host

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

我正在尝试登录虚拟机,但无法进入,因为弹出以下错误:

ERROR: (gcloud.beta.compute.start-iap-tunnel) Error while connecting [[Errno 1] Operation not permitted].
kex_exchange_identification: Connection closed by remote host
ERROR: (gcloud.beta.compute.ssh) [/usr/bin/ssh] exited with return code [255].

用于登录的命令:

gcloud beta compute ssh --zone "us-east1-b" "user1@test"  --project "my-test-project"

当我从不同的机器使用相同的命令时,它允许我登录到测试虚拟机。

我一直在寻找与防火墙设置相关的可能解决方案,但未能成功。有人可以帮忙吗?

最佳答案

我尝试使用您发布的命令连接实例,并且当我从云 shell 和其他实例使用它时,它为我工作。向您提供的错误可能因不同原因而发生,其中包括:

  • VM 正在启动,但 sshd 尚未运行。在虚拟机运行之前,您无法连接到该虚拟机。 要解决此问题,请等待虚拟机完成启动,然后再次尝试连接。

  • 允许 SSH 的防火墙规则丢失或配置错误。默认情况下,Compute Engine 虚拟机允许在端口 22 上进行 SSH 访问。如果 default-allow-ssh 规则缺失或配置错误,您将无法连接到虚拟机。 要解决此问题,请检查您的firewall rules并重新添加或重新配置default-allow-ssh。

  • sshd 正在自定义端口上运行。如果您将 sshd 配置为在端口 22 以外的端口上运行,您将无法连接到您的虚拟机。要解决此问题,请使用以下命令创建一个自定义防火墙规则,允许 sshd 运行所在的端口上的 tcp 流量:

    gcloud compute firewall-rules create FIREWALL_NAME --allow tcp:PORT_NUMBER
    
  • 您的自定义 SSH 防火墙规则不允许来自 Google 服务的流量。如果自定义防火墙规则不允许来自 Google IP 地址范围的连接,来自 Cloud Console 的 SSH 连接将被拒绝。 要解决此问题,请访问此 link

  • sshd 守护程序未运行或未正确配置。 sshd 守护进程启用 SSH 连接。如果配置错误或未运行,您将无法连接到虚拟机。要解决此问题,请查看操作系统的用户指南,以确保您的sshd_config设置正确。

关于google-cloud-platform - 无法登录 GCP 虚拟机 : kex_exchange_identification: Connection closed by remote host,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67237127/

相关文章:

google-compute-engine - 资源利用

mongodb - GCP应用引擎中的Mongo数据库

google-cloud-platform - 超出了 tabledata.list 每秒字节数的配额

azure - 是否可以更改在 Azure 中的虚拟机上运行的镜像而不重新创建它

在远程/虚拟机上运行的Python脚本

ubuntu - Vagrant Rsync 不同步主机和 guest 之间的文件夹

java - 从 Java 中的谷歌计算引擎与数据存储和云存储通信

google-cloud-platform - GCP - 以与环境无关的方式获取 ID token

c - 为什么 Google 的 TrueTime API 难以复制?

google-cloud-platform - Google 云计算实例,IPv6