惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

酷 壳 – CoolShell
酷 壳 – CoolShell
H
Hacker News: Front Page
P
Palo Alto Networks Blog
T
ThreatConnect
Apple Machine Learning Research
Apple Machine Learning Research
博客园_首页
T
True Tiger Recordings
P
Privacy & Cybersecurity Law Blog
B
Blog
IT之家
IT之家
Last Week in AI
Last Week in AI
F
Full Disclosure
Hacker News: Ask HN
Hacker News: Ask HN
C
Comments on: Blog
Microsoft Azure Blog
Microsoft Azure Blog
C
Cybersecurity and Infrastructure Security Agency CISA
Microsoft Security Blog
Microsoft Security Blog
博客园 - 【当耐特】
N
News and Events Feed by Topic
NISL@THU
NISL@THU
腾讯CDC
雷峰网
雷峰网
Security Latest
Security Latest
李成银的技术随笔
M
Microsoft Research Blog - Microsoft Research
L
LangChain Blog
L
Lohrmann on Cybersecurity
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
C
Check Point Blog
Y
Y Combinator Blog
Recent Announcements
Recent Announcements
博客园 - Franky
N
News | PayPal Newsroom
V
V2EX
A
About on SuperTechFans
The Register - Security
The Register - Security
月光博客
月光博客
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Google Online Security Blog
Google Online Security Blog
MyScale Blog
MyScale Blog
Cisco Talos Blog
Cisco Talos Blog
Vercel News
Vercel News
WordPress大学
WordPress大学
C
Cyber Attacks, Cyber Crime and Cyber Security
The Hacker News
The Hacker News
IntelliJ IDEA : IntelliJ IDEA – the Leading IDE for Professional Development in Java and Kotlin | The JetBrains Blog
IntelliJ IDEA : IntelliJ IDEA – the Leading IDE for Professional Development in Java and Kotlin | The JetBrains Blog
爱范儿
爱范儿
A
Arctic Wolf
L
LINUX DO - 最新话题
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More

明明如月成长笔记

个人数据的开源备份:从明清档案之殇想到的 简体字的双重优势:打字效率与扫盲成效全解析 四小时深圳书城奇遇:那些藏在书架间的偶然与必然 正式把我的笔记系统迁移到 Obsidian,为了和 AI 配合 如何降级 cursor-agent /cursor-cli 如何降级 cursor-agent /cursor-cli 打印的不只是文件,还有生活的小幸福 打印的不只是文件,还有生活的小幸福 在 MacOS 上,成功恢复存储卡上被误删的照片 AI CLI 工具:Claude Code, Codex, Gemini CLI, Qwen code, CodeBuddy cli, cursor-agent 我的常用命令 双胞胎女儿一年借书122本,这份9月私藏书单请收好! | 2025-09 童书清单 双胞胎女儿一年借书122本,这份9月私藏书单请收好! | 2025-09 童书清单 港漂日记62:父亲节独自带娃,室内游戏、香港公园探展、观鸟、品味米其林餐厅 南航随心飞机票爬虫解密 acw_sc__v2 港漂日记61:香港私立诊所首诊:商业医保如何改变我的就医体验? 香港历史博物馆:看秦始皇兵马俑,还能和孔子比身高? 港漂日记59:母亲节礼物!AI 涂色小技巧,让孩子的爱跃然纸上 港漂日记60:西营盘网红旧书店 Book & Go 淘书记 港漂日记58:萌娃中环学体操,课后老师狂点赞 五一游记D4:深圳笔架山儿童乐园,邂逅无人机送外卖 我的400篇博客都写了些什么 珊瑚海兔四岁啦 港漂日记D159:亲子同乐日:一场精彩的幼儿园嘉年华 蛇年春节自驾D10:东莞-深圳-香港 DeepSeek教我如何收拾行李箱 福田取逗留签 回港新方式 蛇年春节自驾D9:江门-顺德-东莞 中国侨都华侨华人博物馆 东莞迎宾馆 蛇年春节自驾D8:茂名-开平-江门 挥春作业 粤西堵车 开平碉楼 迎财神 茂名博物馆参观记 蛇年春节自驾D7:茂名 中国第一摊 茂名博物馆 亚朵酒店 蛇年春节自驾D6:南宁-茂名 发财树 青秀山 路途亲子游戏 蛇年春节自驾D5:南宁过大年 醒狮贺岁 三街两巷 特色美食 骑行穿城 琅西夜市 打铁花 新春好!我用DeepSeek写祝福,顺便送你三款红包封面 蛇年春节自驾D4:钦州-南宁 钦州老街,万丽年夜饭 蛇年春节自驾D3:海陵岛-钦州 绝美悬崖餐厅,海景房租赁行情 明明如月成长笔记2024年公众号创作回顾(含免费红包封面🧧) 蛇年春节自驾D2:深圳-阳江-海陵岛 明明和虹虹2024年公众号创作回顾(含免费红包封面🧧) 蛇年春节自驾D1:深圳亲子游 港漂日记D118:备战HK100,徒步港岛'恐龙径' 港漂日记D115:春节大筹备:AI 助力,书法添彩 港漂日记D114:推荐两款适合新港漂使用的app 2025新年计划之:全面拥抱AI 港漂日记D111:备战HK50 港岛径拉练 港漂日记D110:一个普通的周六见闻,聚餐、借书、儿童乐园,体育选拔机制,公共自习室,挫折教育 我的2024:辗转四城,忙碌充实 港漂日记D104:港大幸福家庭博览会,亲子工坊与未来趋势 港漂日记D101:赤柱圣诞狂欢,古迹海景遛娃 港漂日记D100:港漂百日,圣诞快乐🎄 港漂日记D97:欢乐星期天:港大访古探幽,尖沙咀购物赏景 港漂日记D96:太平山卢吉道:一次穿越山林、俯瞰繁华的震撼之行 皇马巴萨元老赛:传奇重逢,闪耀球场 港漂日记D93:宝宝居港三月余,英语表达大进步 港漂日记D90:绘本阅读,潜水展,华嫂冰室 2024香港潜水展参观记 2024香港潜水展参观记 港漂日记D89:宝妈带娃闯大馆,老友相聚话鸡娃 港漂日记D84:消防队亲子嘉年华:风车 DIY、叠杯子,奖品拿到手软! 港漂日记D83:港澳通行证:深圳换证碰壁,香港解锁秘籍 港漂日记D82:笑不活了!在 “知悭识水”嘉年华,我被自家娃的“鬼画符”征服 别再傻傻手工记账!AI 加持 beancount,效率狂飙 N 倍,真香警告 港漂日记D76:勇闯艺趣嘉年华,数数宝宝戴了几顶帽子 港漂日记D75:抵港首次学校秋游 奔赴元朗开心农场 港漂日记D73:深圳盐田周末放松游 | 高铁'灵活行'思考 | 灯塔图书馆 | 壹海城 | 盐田印象 | 港深对比 港漂日记D72:深度揭秘:我是怎么借助AI创作宝宝校庆视频的 港漂日记D71:盐田中英街漫记:海岸盛景,历史长歌 港漂日记D70:海南巨舰下香港,全民共赴海军约 港漂日记D69:完了!在香港,幼儿园小班作业居然做到晚上九点多。。。 港漂日记D68:亲子共赴嘉年华,反诈工坊入童心 港漂日记D61:哇塞!西九龙超燃嘉年华,亲子嗨玩,禁毒护航! 港漂日记D55:台风过境,顶楼泳池看海景,铜锣湾逛吃不停歇 港漂日记D50:探秘香港看病:为宝宝抢号二十次,诊疗却遭宝妈质疑 “没意义”? 港漂日记D45:复诊体验,天哪!在香港做B超居然排到了2027年。。。 港漂日记D42:香港迪士尼 x 万圣节:游客 Cosplay 百态,共赴奇趣冒险 港漂日记D32:在香港读杂志《明报周刊》《国家地理》 港漂日记D31:在校尿裤子怎么办?爷爷寄来滑板车 爸爸讲英文绘本 港漂日记D30:楼顶滑步车 画画闹情绪 拼多多发掘低价秘诀 港漂日记D29:生活的琐碎与温暖 港漂日记D28:深圳一日游 跨境巴士体验 万象天地 陶陶居 gaga 港漂日记D27:香港公园 读绘本 淘拼集运自提体验pk 睡前故事的四个阶段 港漂日记D26:幼儿园小班竟有五项作业 给工人姐姐一部手机 港漂日记D25:社区托班体验 菜鸟驿站取件 港漂日记D22:社区托班报名 中山纪念公园体育课 乔治五世纪念公园观察 港漂日记D21:东涌东荟城 大屿山双峰越野赛 辅导作业 港漂日记D20:和平号环球游轮分享会 数码港 儿童加油站 港漂日记D19:香港故宫文化博物馆 神秘酒吧 港漂日记D15:参观幼儿园,登太平山看夜景,杜莎夫人蜡像馆 港漂日记D14:长洲岛的缤纷一日:奇趣与温情交织 港漂日记D13:香港中央图书馆观察 麦当劳价格 佐治五世纪念公园 社区配套 港漂日记D12: 免费早报 宝宝报课情况 AppleTV 港漂日记D11: 回国代理,智能家居,晨间习惯 港漂日记D10: 折腾智能家具设备,HomeKit,HomeAssistant,AppleTV,米家 港漂日记D8:西区社区中心探访 困难班 辅导班 童军 港漂日记D7:北上消费,中式独居生活vs美式家庭生活,车和家,重典治乱 港漂日记D6:宝宝天星小轮,宝爸研究医保 港漂日记D5:回顾宝宝一周学习表现 港漂日记D4:宝宝生活习惯与社交的思考 港漂日记D3:香港中秋怎么放假,看亚冠,老房子水质问题 港漂日记D2:中秋铜锣湾赏灯,学校手工作品 港漂日记D1:宝宝上学,校车接送,街市买菜,安装马桶,物业规矩,垃圾处理,读报感悟 港漂日记D0:南京飞香港,禄口V7,国泰航空,光大银行送机,上海银行境外接机 在南京六朝博物馆,我看到了195件禁止出国文物中的2件
Gemini CLI 登录踩坑记录:GOOGLE_CLOUD_PROJECT_ID 的坑与解法
lmm333 · 2025-11-01 · via 明明如月成长笔记

一句话总结

Gemini CLI 升级后出现强制重新登录的流程,但在主力 Google 账号上始终触发 This account requires setting the GOOGLE_CLOUD_PROJECT or GOOGLE_CLOUD_PROJECT_ID env var 错误,经过一轮排查与尝试,最终确认这与旧的 Google Cloud 项目绑定有关,改用未启用 Gemini API 的账号即可无痛登录。

背景

过去几个月我一直用 Gemini CLI 写代码、发起快速问答,体验稳定。两天前升级到最新版后,命令行提示需要重新登录。照着提示打开浏览器,在 Google 的授权页面完成 OAuth 流程,回调页面显示 Login successful,看起来一切正常(参考官方成功回调页面示意 auth_success_gemini):

Google 登录成功回调页面示意(请替换为原始截图)

然而 CLI 这边随即抛出错误:

Failed to login. Message: This account requires setting the GOOGLE_CLOUD_PROJECT or GOOGLE_CLOUD_PROJECT_ID env var. See https://goo.gle/gemini-cli-auth-docs#workspace-gca

重复多次依旧失败,说明问题发生在本地 CLI 与账户的后续校验阶段。

Gemini CLI 登录 403 报错示意(请替换为原始截图)

排查过程

  1. 确认是不是官方已知问题。 翻了下官方 GitHub 仓库 google-gemini/gemini-cli,issue 区确实有人反馈同样的报错,维护者在 #3001 建议设置 GOOGLE_CLOUD_PROJECT_ID 环境变量。
  2. 尝试官方论坛建议。 官方支持论坛也有一则 讨论串 建议删除主目录下的 .gemini 配置重新初始化。实际操作后完全无效,CLI 仍然报同样的错,可视为误导信息。
  3. 社区经验搜索。 Twitter/X 上不少开发者抱怨(例如 @imvihv@kiwiflysky)登录失败与 Workspace 账号限制、项目绑定有关。

综合来看,问题并非本地缓存,而是和 Google Cloud 项目绑定状态强相关。

临时可用但副作用巨大的方案

按照 issue #3001 的建议,登录前先在终端导出项目 ID:

export GOOGLE_CLOUD_PROJECT_ID=gen-lang-client-0698601424

项目 ID 可以在 Google Cloud 控制台的欢迎页面看到(控制台首页右上角的“项目 ID”字段,示例可参考下方 Google Cloud Console 链接)。

随后再执行 gemini login,确实可以通过验证。

但现实里这个方案有三个明显缺点:

  • 环境变量不持久。 每次重启终端都要重新 export,除非写进 ~/.bashrc~/.zshrc,使用体验很差。
  • 需要启用 Gemini API。 只有在 Google Cloud 项目中为账号启用了 Gemini API 后,CLI 才能继续调用,这一步有可能触发计费。一些网友反馈开启后免费额度失效,每日 200 次 Pro 模型额度和 Flash 免费调用都会被记入项目账单。
  • 账单风险不透明。 我的账号是在之前测试 Vertex AI 时自动生成的项目,没有设置付款方式,所以暂时没有被扣费;但一旦绑定信用卡,后续费用就不再可控。

下图是开启 Gemini API 后、控制台「费用」页提示“为此项目关联一个结算账号”的示意,虽然页面提示可以继续使用,但计费逻辑依旧不明朗,因此风险依旧存在:

开启 Gemini API 后的 Google Cloud 控制台费用页示意(请替换为原始截图)

如果只设置 Project ID 但未启用 API,会收到 403

如果只按照 issue #3001 的提示设置了 GOOGLE_CLOUD_PROJECTGOOGLE_CLOUD_PROJECT_ID,但忘记在控制台里启用 Gemini API,会直接收到 403 错误:

 [API Error: [{
      "error": {
        "code": 403,
        "message": "Gemini for Google Cloud API has not been used in project gen-lang-client-0698601424 before or it is disabled. Enable it by visiting https://console.developers.google.com/apis/api/cloudaicompanion.googleapis.com/overview?project=gen-lang-client-0698601424 then retry. If you enabled this API recently, wait a few minutes for the action to propagate to our systems and retry.",
        "errors": [
          {
            "message": "Gemini for Google Cloud API has not been used in project gen-lang-client-0698601424 before or it is disabled. Enable it by visiting https://console.developers.google.com/apis/api/cloudaicompanion.googleapis.com/overview?project=gen-lang-client-0698601424 then retry. If you enabled this API recently, wait a few minutes for the action to propagate to our systems and retry.",
            "domain": "usageLimits",
            "reason": "accessNotConfigured",
            "extendedHelp": "https://console.developers.google.com"
          }
        ],
        "status": "PERMISSION_DENIED",
        "details": [
          {
            "@type": "type.googleapis.com/google.rpc.ErrorInfo",
            "reason": "SERVICE_DISABLED",
            "domain": "googleapis.com",
            "metadata": {
              "containerInfo": "gen-lang-client-0698601424",
              "activationUrl": "https://console.developers.google.com/apis/api/cloudaicompanion.googleapis.com/overview?project=gen-lang-client-0698601424",
              "consumer": "projects/gen-lang-client-0698601424",
              "service": "cloudaicompanion.googleapis.com",
              "serviceTitle": "Gemini for Google Cloud API"
            }
          }
        ]
      }
    }
  ]

对应的终端截屏示意如下,提示 Gemini API 未启用:

未启用 Gemini API 的 403 截屏示意

因此不要误以为设置变量就足够了,Google Cloud 侧的服务状态同样关键。

综上,这个方法只是权宜之计,风险远大于收益。

最终的稳定方案:更换 Google 账号

在排除环境变量方案之后,我尝试使用一个从未在 Google Cloud 开通过 Gemini 项目的个人账号重新登录:

  1. 退出 CLI:gemini logout,并清理 ~/.gemini 目录。
  2. 使用备用 Google 账号在浏览器完成 OAuth 授权。
  3. 回到终端执行 gemini login,这次没有再提示设置项目 ID,直接进入可用状态。

实测表明,只要账号没有绑定旧的 Gemini API 或 Workspace 限制,登录流程就和旧版本一样顺利。对于需要继续使用主力账号的同学,目前还没有官方给出的无风险修复,需要等待 CLI 后续更新。

Codex 给出的可操作建议

后续我又参考了 gpt-5-codex 给出的排查建议,步骤相对完整,也有助于理解整个登录流程的变化:

  1. 先确认 Project ID。 登录 Google Cloud Console 选取或新建一个项目,记录 Project ID(如 my-gemini-playground)。
  2. 通过环境变量告知 CLI。 临时会话可以执行 export GOOGLE_CLOUD_PROJECT=my-gemini-playground(或 GOOGLE_CLOUD_PROJECT_ID);若想持久保存,把同一行写进 ~/.zshrc 等 shell 配置,必要时顺便执行 gcloud config set project my-gemini-playground,让 gcloud 与 CLI 保持一致。
  3. 确认变量已生效再登录。 重新运行 gemini login 前先用 echo $GOOGLE_CLOUD_PROJECT 检查变量值。如果仍报错,再检查 403 是否与 API 未启用有关。
  4. 检查权限与 API 状态。 第一次使用该项目时需要在控制台启用 Vertex AI / Gemini API,并确保账号至少具备 Editor 权限。多终端环境下记得每个会话都要设置相同变量。
  5. 避免误删 .gemini 目录。 错误的关键不在本地缓存,而是项目上下文缺失;删目录不会带来帮助。

小结

  • 触发 GOOGLE_CLOUD_PROJECT_ID 报错的根源在于旧项目或 Workspace 限制,而非本地缓存。
  • 通过导出 GOOGLE_CLOUD_PROJECT_ID 可以临时登录,但需要启用 Gemini API,可能带来计费与额度损失。
  • 更换一个未启用 Gemini API 的 Google 账号是现阶段最稳妥的解决方案。

如果你也遇到相同问题,建议先确认自己是否在 Google Cloud 中启用了相关项目,再决定是承担计费风险继续使用,还是临时更换账号等待官方修复。

参考链接