Gemini CLI 身份验证设置
Gemini CLI 需要使用 Google 服务进行身份验证。在使用 Gemini CLI 之前,请配置 任一 以下身份验证方法:
- 交互模式:
- 推荐:使用 Google 登录
- 使用 Gemini API 密钥
- 使用 Vertex AI
- 无头(非交互式)模式
- Google Cloud Shell
快速检查:是否在 Google Cloud Shell 中运行?
如果您在 Google Cloud Shell 环境中运行 Gemini CLI,身份验证通常会使用您的 Cloud Shell 凭据自动完成。
在交互模式下进行身份验证
当您通过命令行运行 Gemini CLI 时,Gemini CLI 将提供以下选项:
> 1. 使用 Google 登录
> 2. 使用 Gemini API 密钥
> 3. Vertex AI以下各节提供了每种身份验证选项的说明。
推荐:使用 Google 登录
如果您在本地计算机上运行 Gemini CLI,最简单的方法是使用您的 Google 帐户登录。
重要提示: 如果您是 Google AI Pro 或 Google AI Ultra 订阅用户,请使用此方法。
选择 使用 Google 登录。Gemini CLI 将使用您的网络浏览器打开登录提示。
如果您是 Google AI Pro 或 Google AI Ultra 订阅用户,请使用与您的订阅关联的 Google 帐户登录。
按照屏幕上的说明操作。您的凭据将缓存到本地,供以后使用。
注意: 此方法需要一个能够与运行 CLI 的终端通信的网络浏览器(例如,您的本地计算机)。浏览器将被重定向到 CLI 在设置过程中监听的
localhostURL。
(可选) 设置您的 GOOGLE_CLOUD_PROJECT
当您使用 Google 帐户登录时,可能会提示您选择一个 GOOGLE_CLOUD_PROJECT。
如果您符合以下任一情况,则可能需要此设置:
- 使用 Google Workspace 帐户。
- 使用来自 Google Developer Program 的 Gemini Code Assist 许可证。
- 使用来自 Gemini Code Assist 订阅的许可证。
- 在免费个人使用支持的区域 不支持的区域 之外使用该产品。
- 年龄未满 18 岁的 Google 帐户持有者。
如果您属于以上任一类别,则必须:
- 拥有一个 Google Cloud 项目 ID。
- 启用 Gemini for Cloud API。
- 配置必要的 IAM 访问权限。
要设置项目 ID,请导出 GOOGLE_CLOUD_PROJECT 环境变量:
# 将 YOUR_PROJECT_ID 替换为您的实际 Google Cloud 项目 ID
export GOOGLE_CLOUD_PROJECT="YOUR_PROJECT_ID"要使此设置持久化,请参阅 持久化环境变量。
使用 Gemini API 密钥
如果您不想使用 Google 帐户进行身份验证,可以使用 Google AI Studio 的 API 密钥。
从 Google AI Studio 获取您的 API 密钥。
设置
GEMINI_API_KEY环境变量:bash# 将 YOUR_GEMINI_API_KEY 替换为来自 AI Studio 的密钥 export GEMINI_API_KEY="YOUR_GEMINI_API_KEY"
要使此设置持久化,请参阅 持久化环境变量。
警告: 将 API 密钥(尤其是像 Gemini 这样的服务)视为敏感凭据。保护好它们,以防止未经授权的访问和潜在的服务滥用。
使用 Vertex AI
如果您打算使用 Google Cloud 的 Vertex AI 平台,有几种身份验证选项:
- 应用程序默认凭据 (ADC) 和
gcloud。 - 服务帐户 JSON 密钥。
- Google Cloud API 密钥。
首先:设置所需的环境变量
无论您选择哪种身份验证方法,通常都需要设置以下变量:GOOGLE_CLOUD_PROJECT 和 GOOGLE_CLOUD_LOCATION。
要设置这些变量:
# 替换为您的项目 ID 和所需位置(例如,us-central1)
export GOOGLE_CLOUD_PROJECT="YOUR_PROJECT_ID"
export GOOGLE_CLOUD_LOCATION="YOUR_PROJECT_LOCATION"A. Vertex AI - 使用 gcloud 的应用程序默认凭据 (ADC)
如果您已安装 Google Cloud CLI,请考虑使用此身份验证方法。
注意: 如果您之前设置了
GOOGLE_API_KEY或GEMINI_API_KEY,则必须取消设置它们才能使用 ADC:
unset GOOGLE_API_KEY GEMINI_API_KEY确保您有一个 Google Cloud 项目并且 Vertex AI API 已启用。
登录 Google Cloud:
bashgcloud auth application-default login有关详细信息,请参阅 设置应用程序默认凭据。
确保已设置
GOOGLE_CLOUD_PROJECT和GOOGLE_CLOUD_LOCATION。
B. Vertex AI - 服务帐户 JSON 密钥
在非交互式环境、CI/CD 中,或者如果您的组织限制用户基于 ADC 或 API 密钥的创建,请考虑使用此身份验证方法。
注意: 如果您之前设置了
GOOGLE_API_KEY或GEMINI_API_KEY,则必须取消设置它们:
unset GOOGLE_API_KEY GEMINI_API_KEY创建服务帐户和密钥 并下载提供的 JSON 文件。为服务帐户分配“Vertex AI 用户”角色。
将
GOOGLE_APPLICATION_CREDENTIALS环境变量设置为 JSON 文件的绝对路径:bash# 将 /path/to/your/keyfile.json 替换为实际路径 export GOOGLE_APPLICATION_CREDENTIALS="/path/to/your/keyfile.json"确保已设置
GOOGLE_CLOUD_PROJECT和GOOGLE_CLOUD_LOCATION。
警告: 保护您的服务帐户密钥文件,因为它提供了对您资源的访问权限。
C. Vertex AI - Google Cloud API 密钥
获取 Google Cloud API 密钥:获取 API 密钥。
设置
GOOGLE_API_KEY环境变量:bash# 将 YOUR_GOOGLE_API_KEY 替换为您的 Vertex AI API 密钥 export GOOGLE_API_KEY="YOUR_GOOGLE_API_KEY"注意: 如果您看到类似
"API keys are not supported by this API..."的错误,则您的组织可能限制了此服务的 API 密钥使用。请尝试使用 服务帐户 JSON 密钥 或 ADC 方法。
要使这些 Vertex AI 环境变量设置中的任何一个持久化,请参阅 持久化环境变量。
持久化环境变量
为了避免在每个终端会话中都设置环境变量,您可以:
将环境变量添加到您的 shell 配置文件: 将
export ...命令追加到您的 shell 启动文件(例如~/.bashrc、~/.zshrc或~/.profile)并重新加载您的 shell(例如source ~/.bashrc)。bash# .bashrc 示例 echo 'export GOOGLE_CLOUD_PROJECT="YOUR_PROJECT_ID"' >> ~/.bashrc source ~/.bashrc警告: 请注意,当您在 shell 配置文件中导出 API 密钥或服务帐户路径时,从该 shell 执行的任何进程都可能读取它们。
使用
.env文件: 在您的项目目录或主目录中创建一个.gemini/.env文件。Gemini CLI 会自动从它找到的第一个.env文件加载变量,该文件从当前目录向上搜索,然后是~/.gemini/.env或~/.env。推荐使用.gemini/.env。用户范围设置的示例:
bashmkdir -p ~/.gemini cat >> ~/.gemini/.env <<'EOF' GOOGLE_CLOUD_PROJECT="your-project-id" # 根据需要添加其他变量,如 GEMINI_API_KEY EOF变量从找到的第一个文件加载,而不是合并。
非交互式模式 / 无头环境
非交互式模式 / 无头环境将使用您现有的身份验证方法(如果已缓存现有身份验证凭据)。
如果您尚未通过身份验证凭据(例如 Google 帐户)登录,则 必须 使用环境变量配置身份验证:
- Gemini API 密钥: 设置
GEMINI_API_KEY。 - Vertex AI:
- 设置
GOOGLE_GENAI_USE_VERTEXAI=true。 - 使用 Google Cloud API 密钥: 设置
GOOGLE_API_KEY。 - 使用 ADC: 确保 ADC 已配置(例如,通过具有
GOOGLE_APPLICATION_CREDENTIALS的服务帐户),并设置GOOGLE_CLOUD_PROJECT和GOOGLE_CLOUD_LOCATION。
- 设置
如果在非交互式模式下找不到合适的环境变量,CLI 将以错误退出。
下一步?
您的身份验证方法会影响您的配额、定价、服务条款和隐私声明。请查阅以下页面以了解更多信息: