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

GCloud CLI执行ssh命令报“Project ID not found”错误排查求助

GCloud Compute SSH 执行报错排查与解决方案

错误详情

执行实例创建后的SSH命令时返回两种错误,命令如下:

gcloud compute ssh --zone "${GC_REGION}" "${GC_REMOTE_LOGIN}" --command "if [ ! -f \"/etc/original.fstab\" ]; then lsblk --noheadings --raw -o NAME,MOUNTPOINT | awk 'length(\$1) == 3 && \$1 != \"sda\"' > /tmp/drive-letter.tmp; fi";

错误1

ERROR: (gcloud.compute.ssh) Users instance [sXXXXXXX@sty-holdings.com] not found: Project ID not found.

错误2

ERROR: (gcloud.compute.ssh) HttpError accessing <https://oslogin.googleapis.com/v1/users/scott.yacko@sty-holdings.com/loginProfile?alt=json&projectId=savup-production>: response: <{'vary': 'Origin, X-Origin, Referer', 'content-type': 'application/json; charset=UTF-8', 'content-encoding': 'gzip', 'date': 'Tue, 25 Jul 2023 19:02:40 GMT', 'server': 'ESF', 'cache-control': 'private', 'x-xss-protection': '0', 'x-frame-options': 'SAMEORIGIN', 'x-content-type-options': 'nosniff', 'alt-svc': 'h3=":443"; ma=2592000,h3-29=":443"; ma=2592000', 'transfer-encoding': 'chunked', 'status': 500}>, content <{
  "error": {
    "code": 500,
    "message": "Internal error encountered.",
    "status": "INTERNAL"
  }
}

背景信息

相同脚本在开发项目中可正常运行,本次为生产级项目。实例创建命令如下:

gcloud compute instances create savup-prod-0001
    --zone=us-central1-c
    --machine-type=e2-small
    --network-interface=network-tier=PREMIUM,subnet=default,address=34.67.100.152
    --metadata=environment=,enable-oslogin=true
    --maintenance-policy=MIGRATE
    --provisioning-model=STANDARD
    --service-account=838247644754-compute@developer.gserviceaccount.com
    --scopes=https://www.googleapis.com/auth/cloud-platform
    --tags=nats,savup-http,savup-https,plaid
    --no-shielded-secure-boot
    --no-restart-on-failure
    --create-disk=auto-delete=yes,boot=yes,device-name=,image=projects/ubuntu-os-cloud/global/images/ubuntu-2004-focal-v20230724,mode=rw
    --shielded-vtpm
    --shielded-integrity-monitoring
    --maintenance-policy=MIGRATE
    --reservation-affinity=any
    --key-revocation-action-type=stop
    --create-disk=device-name=savup-prod-0001-nats,mode=rw,name=savup-prod-0001-nats

实例创建成功:

Created [https://www.googleapis.com/compute/v1/projects/savup-production/zones/us-central1-c/instances/savup-prod-0001].
NAME             ZONE           MACHINE_TYPE  PREEMPTIBLE  INTERNAL_IP  EXTERNAL_IP    STATUS
savup-prod-0001  us-central1-c  e2-small                   10.128.0.43  34.67.100.152  RUNNING

创建实例前已执行gcloud config set project XXXXXXXXX设置项目ID。

已做排查

  • 在非生产项目运行脚本,可正常执行;
  • 确认GCloud CLI版本为438.0.0;
  • 更换OS镜像为projects/ubuntu-os-cloud/global/images/ubuntu-2004-focal-v20230724;
  • 再次在非生产项目运行脚本,仍正常。

解决方案

针对两种错误分别处理:

针对错误1(Project ID not found)

  1. 显式指定项目ID:脚本执行环境可能未正确继承gcloud config的项目设置,修改SSH命令,添加--project参数指定生产项目:
gcloud compute ssh --project "savup-production" --zone "${GC_REGION}" "${GC_REMOTE_LOGIN}" --command "if [ ! -f \"/etc/original.fstab\" ]; then lsblk --noheadings --raw -o NAME,MOUNTPOINT | awk 'length(\$1) == 3 && \$1 != \"sda\"' > /tmp/drive-letter.tmp; fi";
  1. 验证用户权限与格式:确认${GC_REMOTE_LOGIN}是有效的OS Login邮箱格式,且该用户已被授予生产项目的Compute实例访问权限(需至少拥有roles/compute.osLogin角色)。

针对错误2(OS Login 500内部错误)

  1. 重试命令:500错误多为GCP内部服务临时波动导致,直接重试命令即可。
  2. 检查OS Login API启用状态:确认生产项目已启用OS Login API,执行以下命令检查:
gcloud services list --enabled | grep oslogin

未启用则执行启用命令:

gcloud services enable oslogin.googleapis.com
  1. 确认实例元数据配置:验证实例的enable-oslogin元数据是否正确设置:
gcloud compute instances describe savup-prod-0001 --zone us-central1-c --format="value(metadata.items.enable-oslogin)"

输出应为true。
4. 增加实例启动延迟:实例创建后需时间完成OS Login配置,在脚本中添加延迟再执行SSH命令:

sleep 30
# 之后执行SSH命令

额外排查点

  • 手动替换脚本中的变量${GC_REGION}和${GC_REMOTE_LOGIN}为实际值,在本地终端直接执行SSH命令,排除变量替换错误;
  • 检查执行gcloud命令的账号是否拥有生产项目的roles/compute.instanceAdmin或更高权限,确保能访问目标实例。

内容的提问来源于stack exchange,提问作者S. Yacko

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 09:14:52