You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用gcloud compute SSH连接GCE时卡在认证阶段的求助

解决gcloud compute SSH连接GCE实例停滞无响应的问题

结合你遇到的卡在公钥认证后无响应的情况,以及提供的调试日志和环境信息,我整理了几个针对性的解决方案:

1. 修复缺失的SSH已知主机文件

从调试日志能看到google_compute_known_hosts文件不存在,这可能导致gcloud在验证主机身份时卡住:

# 先创建.ssh目录(如果不存在)
New-Item -ItemType Directory -Path C:\Users\hogehoge\.ssh
# 创建空的google_compute_known_hosts文件
New-Item -ItemType File -Path C:\Users\hogehoge\.ssh\google_compute_known_hosts

创建完成后再重新尝试连接命令。

2. 统一SSH登录身份(匹配Cloud Shell的tomotomo)

你提到Cloud Shell用tomotomo身份能连接,说明实例的SSH密钥元数据里已经有这个用户的公钥,但本地gcloud默认用hogehoge身份,可能导致认证后权限或匹配问题:

  • 临时指定用户名连接:直接在命令里加上--user参数:
    gcloud compute --project "first-medium-2****8" ssh --zone "us-east1-b" "instance-2" --user=tomotomo
    
  • 添加hogehoge的公钥到实例元数据:
    1. 打开本地C:\Users\hogehoge\.ssh\google_compute_engine.pub文件,复制全部内容
    2. 登录GCP控制台,找到目标实例 -> 编辑 -> 元数据 -> SSH密钥,添加一行格式为hogehoge:ssh-rsa AAAAB***...的内容(即你复制的公钥)
    3. 保存后再尝试原命令连接

3. 强制gcloud使用OpenSSH替代Putty

调试日志显示gcloud调用了Putty,可能Putty的配置或兼容性导致停滞,你可以强制gcloud用OpenSSH:

# 临时设置环境变量(当前PowerShell会话有效)
$env:CLOUDSDK_SSH_USE_PUTTY = "false"
# 之后重新执行你的SSH连接命令
gcloud compute --project "first-medium-2****8" ssh --zone "us-east1-b" "instance-2"

如果需要永久生效,可以在系统环境变量里添加CLOUDSDK_SSH_USE_PUTTY并设置值为false。

4. 其他排查步骤

  • 检查实例防火墙规则:确认实例所在的VPC有允许22端口入站的规则(默认的allow-ssh规则是否存在且启用)
  • 重启GCE实例:有时候实例的SSH服务可能异常,重启后能恢复正常连接
  • 测试网络环境:尝试切换到其他网络(比如手机热点),排除本地防火墙或代理阻止SSH连接的可能

内容的提问来源于stack exchange,提问作者redpawn

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.13 06:28:27