Gemini CLI 卡在 Waiting for auth,浏览器过了终端还在转

选了 Login with Google,浏览器里账号授完权,回到终端还挂着:

Waiting for auth... (Press ESC to cancel)

有时网页已经提示成功了,CLI 还是不往下走。先别以为账号出了问题,对照官方认证页,把登录方式、Workspace、代理这几块分开查。

官方这条登录依赖什么

文档里说得很清楚:本机交互式推荐 Login with Google(Google AI Pro / Ultra 订阅也走这条,用绑定订阅的那个 Google 账号)。CLI 会开浏览器;授权结束后浏览器要跳回 CLI 在本机监听的 localhost 回调。官方原话大意是:浏览器所在机器得能跟跑 CLI 的终端通信。

所以浏览器那边点完只算完成了一半。后面还有 CLI 去 oauth2.googleapis.com 换 token、本地回调把结果交回进程。任一步断了,界面就会一直 Waiting for auth,或者网页侧变成 sign-in failed。

交互菜单另外还有 Use Gemini API key(AI Studio 的 GEMINI_API_KEY)和 Vertex AI。无头 / 非交互环境,官方明确说没有缓存凭证时要用环境变量,浏览器登录指望不上。本机有浏览器的,先把默认的 Google 登录排查通;API Key、Vertex 是另外两种方式,配额和计费也不一样。

终端有没有走代理

浏览器开了系统代理 / TUN,不代表敲 gemini 的那个 shell 也能打到 Google OAuth。公开 issue 里,换票阶段超时很常见,报错类似:

Failed to exchange authorization code for tokens:
request to https://oauth2.googleapis.com/token failed

维护者后来写明:认证路径认的是 HTTP_PROXY / HTTPS_PROXY;settings.json 里配 proxy、旧的 --proxy 对登录不可靠甚至已不支持。变量要写在实际启动 gemini 的那个会话里,改完重开终端再登。代理端口还活着也要确认:环境变量指着旧端口时,浏览器走系统规则没事,CLI 就会一直超时。

回调是 localhost。代理规则若把本机环回也送进隧道,浏览器授完权却打不回 CLI。需要时给当前会话加上 NO_PROXY=localhost,127.0.0.1(以及你环境里用的 ::1)。公司网 TLS 解密时,troubleshooting 还提到 Node 可能要 NODE_EXTRA_CA_CERTS 指向公司根证书,这是证书信任的问题,跟终端没走代理是两回事。

GOOGLE_CLOUD_PROJECT 什么时候该设

官方认证页把 GOOGLE_CLOUD_PROJECT 标成 Login with Google 下的可选项,但下面几种情况必须设:

  • Google Workspace 账号
  • Gemini Code Assist(含 Developer Program / 订阅许可)
  • 在免费个人用量不支持的地区使用
  • 未满 18 岁的 Google 账号

这时要有 Cloud 项目 ID,启用 Gemini for Cloud API,并配好 IAM。设置方法:

export GOOGLE_CLOUD_PROJECT="YOUR_PROJECT_ID"

可写进 shell 配置,或放进 ~/.gemini/.env(CLI 会从当前目录向上找 .env,也认 ~/.gemini/.env;找到第一个就加载,不合并)。

首页也对组织付费 Code Assist 写了同样提醒:有组织许可时记得设 Project。Workspace / 组织许可走的是 Code Assist 那条资格,和个人免费档不是同一套检查。

反过来,个人免费 / AI Pro / AI Ultra 用个人 Google 账号登录时,乱设 GOOGLE_CLOUD_PROJECT / GOOGLE_CLOUD_PROJECT_ID 会让 CLI 去走组织订阅的资格检查。troubleshooting 里有过「必须是组织 Gemini Code Assist Standard 的 named user」一类报错,原因就是检测到这些变量。个人账号先 printenv | grep GOOGLE_CLOUD,不该有的就 unset,并检查 .bashrc / .zshrc / .gemini/.env 里有没有残留。

Workspace 账号若踩到 Failed to login. Message: Request contains an invalid argument,官方 troubleshooting 给的方向是:给 Cloud 账号设上 GOOGLE_CLOUD_PROJECT,或改走 AI Studio 的 GEMINI_API_KEY(单独免费档)。

还卡在 Waiting 的话

浏览器已授权、终端还在转:看当前 shell 的 HTTP_PROXY/HTTPS_PROXY 是否指向活着的代理;NO_PROXY 是否放过 localhost;回调端口有没有被占或被劫持。账号侧:Workspace / Code Assist / 官方列出的特殊情形要有合法 Project;个人订阅反而先清掉误设的 Project 变量。无头机没有可用浏览器回调时,官方路径是 API Key 或 Vertex 环境变量,别干等 Waiting for auth。

还卡着的话,把是不是 Workspace 账号、环境里有没有 GOOGLE_CLOUD_PROJECT、代理变量,以及换 token 的报错原文贴出来,好查一些。

参考: