理解 Claude Code 中的身份验证优先级
使用 Claude Code 时,了解身份验证方法的优先级很重要,这样可以避免意外的 API 费用,并确保您使用的是预期的账户。
重要提示:如果您的系统上设置了 ANTHROPIC_API_KEY 环境变量,Claude Code 将使用此 API 密钥进行身份验证,而不是您的 Claude.ai 订阅(Pro、Max、Team 或 Enterprise),这将导致 API 使用费用,而不是使用您订阅中包含的使用额度。
身份验证工作原理
Claude Code 优先使用环境变量 API 密钥而不是已认证的订阅。
这是有意设计的行为,旨在让您灵活选择身份验证方法。
当 API 密钥设置为环境变量时,您将通过与该密钥关联的 API 账户按 API 按量付费费率收费。
即使您已使用 claude.ai 订阅或不同的 Console 账户登录 Claude Code,也会发生这种情况。
最佳实践
要使用 Claude Code 与您的 Claude 订阅:保持 ANTHROPIC_API_KEY 环境变量未设置。
这可以防止意外的 API 费用,并确保您使用订阅中包含的使用额度。
如果您需要偶尔使用特定的 API 密钥,仅在需要时临时设置它。
定期在 Claude Code 中运行 /status 以验证您当前的身份验证方法。
身份验证冲突警告
当您的已认证订阅与环境变量 API 密钥之间存在冲突时,Claude Code 将通知您:
在初始设置期间,如果在您的环境变量中检测到 API 密钥,Claude Code 将要求您确认要使用哪种身份验证方法
成功登录后,如果两个凭证都处于活跃状态,您将看到一条通知,提醒您可能产生意外的 API 费用
检查您的当前配置
要验证是否将 API 密钥设置为环境变量,请在 Claude Code 中运行 /status。这将显示当前活跃的身份验证方法。
要直接检查您的环境变量,请在终端中运行以下命令之一(在 Claude Code 外部):
macOS/Linux:
echo $ANTHROPIC_API_KEY
Windows CMD:
echo %ANTHROPIC_API_KEY%
Windows PowerShell:
echo $env:ANTHROPIC_API_KEY
临时设置 API 密钥
如果您只需要为当前终端会话使用 API 密钥:
macOS/Linux:
export ANTHROPIC_API_KEY='your-api-key-here'
Windows CMD:
set ANTHROPIC_API_KEY=your-api-key-here
Windows PowerShell:
$env:ANTHROPIC_API_KEY="your-api-key-here"
永久设置 API 密钥环境变量
macOS/Linux:
对于 zsh(macOS 上的默认值):
bash
# 添加到 shell 配置文件
echo 'export ANTHROPIC_API_KEY="your-api-key-here"' >> ~/.zshrc
# 应用更改
source ~/.zshrc
对于 bash:
bash
# 添加到 shell 配置文件
echo 'export ANTHROPIC_API_KEY="your-api-key-here"' >> ~/.bash_profile
# 应用更改
source ~/.bash_profile
Windows:
打开系统属性 → 高级 → 环境变量
在"用户变量"下,点击"新建"
变量名:ANTHROPIC_API_KEY
变量值:your-api-key-here
点击确定并重启您的终端
删除 API 密钥环境变量
macOS/Linux(临时):
unset ANTHROPIC_API_KEY
macOS(永久):
# 从配置文件中删除
sed -i '' '/ANTHROPIC_API_KEY/d' ~/.zshrc
source ~/.zshrc
Linux(永久)
sed -i '/ANTHROPIC_API_KEY/d' ~/.zshrc
Windows CMD:
set ANTHROPIC_API_KEY=
Windows PowerShell:
Remove-Item Env:ANTHROPIC_API_KEY
Windows(永久):从系统环境变量设置中删除该变量。
要避免的常见问题
在 shell 配置文件中设置环境变量后忘记它们。
更改环境变量后未重启终端。
假设您在使用订阅,而实际上环境中配置了 API 密钥。
如有任何问题,请联系我们的产品支持团队。
