Amux API

Claude Code 更换 API Key:设置、验证与冲突排查

更新于 2026-11-01 · amux.shop

简答:Claude Code 更换 API Key,最稳妥的顺序是:先关闭或清理旧认证来源,再按系统设置新变量,重启 Claude Code,最后用 /status 确认当前认证方式。若同时存在环境变量和订阅登录,环境变量 API Key 会优先使用,并可能按 API 账户计费。

定义:Claude Code 更换 API Key,是把当前终端、Shell 配置或网关设置中的认证凭据切换为新的 API Key,并通过重启和 /status 验证实际生效来源。

先看最短路径:3 步完成更换

本文面向已经拥有新 API Key、需要让 Claude Code 使用它的用户。Claude Code 支持 Bash、Zsh、PowerShell 和 CMD;当前文档也列出 macOS、Windows、Linux 等运行环境。具体版本的命令和界面可能变化,执行前应以当前文档和本机实际响应为准。参考Claude Code 高级设置文档。

  1. 确认认证来源:进入 Claude Code,运行 /status,查看当前是环境变量 API Key、网关凭据,还是 claude.ai 登录。
  2. 设置新凭据:只想临时测试就设置当前终端变量;需要长期使用才修改 Shell 配置文件或 Windows 用户环境变量。
  3. 重启并复核:关闭当前 Claude Code,从已经加载新变量的终端重新启动,再运行 /status。不要用 echo、printf 或日志直接输出完整 Key。
目标推荐做法生效范围注意事项
只测试新 Key当前终端设置 ANTHROPIC_API_KEY当前终端及其启动的进程关闭终端后通常不会保留
长期使用新 Key修改 ~/.zshrc、~/.bash_profile 或 Windows 环境变量新开的终端修改后要重新加载或重启终端
连接兼容网关同时配置 ANTHROPIC_BASE_URL 和网关凭据由环境变量或 settings 文件决定凭据变量取决于网关要求的请求头

官方帮助中心明确说明:环境变量 API Key 会优先于已认证的订阅登录;如果不希望请求走 API 按量计费,使用订阅登录时应保持 ANTHROPIC_API_KEY 未设置。参见Claude Code 环境变量 API Key 管理说明。

macOS/Linux:临时更换与永久更换

临时更换:只影响当前终端

先打开新的终端窗口,再执行以下命令。占位符只代表你的新 Key,不要把真实密钥写进文章、脚本、截图或 Git 仓库。

export ANTHROPIC_API_KEY='YOUR_NEW_API_KEY'

然后在同一个终端启动 Claude Code:

claude

这种方式只对当前终端以及从该终端启动的程序生效。测试完成后,可以清除当前终端变量:

unset ANTHROPIC_API_KEY

永久更换:写入 Shell 配置文件

macOS 默认常见的是 Zsh。先编辑配置文件,删除旧的 ANTHROPIC_API_KEY 行,再加入新值:

nano ~/.zshrc

配置文件中只保留类似下面的一行:

export ANTHROPIC_API_KEY='YOUR_NEW_API_KEY'

保存后重新加载:

source ~/.zshrc

如果你使用 Bash,实际加载的文件可能是 ~/.bash_profile 或 ~/.bashrc,应以当前 Shell 的配置为准。官方说明给出了 Zsh、Bash、Windows 环境变量和移除变量的方法,见环境变量管理页面。

不回显完整 Key 的检查方法

不要直接运行 echo $ANTHROPIC_API_KEY。可以只检查变量是否存在,以及显示首尾少量字符:

if [ -n "$ANTHROPIC_API_KEY" ]; then
  printf 'ANTHROPIC_API_KEY 已设置,长度:%s
' "${#ANTHROPIC_API_KEY}"
  printf '掩码:%s...%s
' "${ANTHROPIC_API_KEY:0:7}" "${ANTHROPIC_API_KEY: -4}"
else
  printf 'ANTHROPIC_API_KEY 未设置
'
fi

这仍可能把部分凭据写入终端记录,因此更严格的生产环境可以只检查“已设置”和长度,不打印任何字符。

Windows:CMD 与 PowerShell 分开设置

Windows CMD:当前窗口临时设置

set ANTHROPIC_API_KEY=YOUR_NEW_API_KEY
claude

关闭该 CMD 窗口后,这种设置通常不会继续存在。清除当前窗口变量:

set ANTHROPIC_API_KEY=

PowerShell:当前会话临时设置

$env:ANTHROPIC_API_KEY = 'YOUR_NEW_API_KEY'
claude

清除当前 PowerShell 会话中的变量:

Remove-Item Env:ANTHROPIC_API_KEY -ErrorAction SilentlyContinue

Windows 永久设置

打开“系统属性 → 高级 → 环境变量”,在“用户变量”中找到 ANTHROPIC_API_KEY,将值改为新 Key;如果没有该变量则新建。保存后关闭已经打开的 Claude Code 和终端,再打开新的 CMD 或 PowerShell。官方帮助中心要求修改 Windows 环境变量后重启终端,具体步骤见Claude Code API Key 环境变量说明。

PowerShell 中可用下面的方式检查是否存在,但不要回显完整值:

if ($env:ANTHROPIC_API_KEY) {
  Write-Host "ANTHROPIC_API_KEY 已设置,长度:$($env:ANTHROPIC_API_KEY.Length)"
} else {
  Write-Host "ANTHROPIC_API_KEY 未设置"
}

更换后如何确认真的生效

  1. 关闭已经运行的 Claude Code。
  2. 关闭旧终端,打开一个新终端;如果使用临时变量,就在同一个新终端重新设置变量。
  3. 从该终端运行 claude。
  4. 在 Claude Code 中运行 /status,确认显示的认证来源是预期的 API Key、Auth token、网关或登录方式。
  5. 发送一个不涉及写文件、提交代码、删除文件或修改生产环境的简单请求,确认没有认证错误。

/status 用于确认当前认证方式;官方文档还提醒,设置环境变量后,Claude Code 可能提示订阅登录与环境变量凭据存在冲突。不要把“能打开客户端”当作新 Key 已生效的充分证明,应以状态信息和实际请求结果共同判断。参见环境变量认证说明。

更换 API Key 不等于在 Console 中替换原 Key。Claude API Key 在 Claude Console 中创建和管理;官方文档说明,新 Key 的完整值通常只在创建时显示一次,丢失后需要重新创建。先验证新 Key,再按照组织权限和安全策略停用旧 Key,参考Claude API Key 创建与管理文档。

认证冲突:API Key、/login 与订阅登录哪个优先

现象通常含义处理方式
设置了 ANTHROPIC_API_KEY环境变量 API Key 可能优先于订阅登录用 /status 核认;不想走 API 计费就清除变量
使用 /login 后仍显示 API Key旧环境变量仍在当前终端、Shell 配置或设置文件中搜索并删除旧变量,重启终端和 Claude Code
设置了 ANTHROPIC_AUTH_TOKEN通常用于网关的 Bearer Token确认网关要求的认证头,不要把变量名随意互换
同时有多个来源可能出现认证冲突提示只保留本次需要的凭据,再用 /status 验证

对于官方 API,API Key 是静态秘密;对于网关,Claude Code 文档区分了 ANTHROPIC_AUTH_TOKEN 和 ANTHROPIC_API_KEY:前者通常映射为 Authorization: Bearer,后者通常映射为 x-api-key。实际应以网关团队提供的认证要求为准。参考连接 LLM 网关的官方文档和Claude API 认证文档。

使用 API 代理或兼容 Anthropic 接口时怎么换 Key

如果你的 Claude Code 不是直连官方 API,而是通过兼容 Anthropic 格式的网关,通常需要同时配置 Base URL 和网关凭据。示例:

export ANTHROPIC_BASE_URL='https://YOUR_GATEWAY_HOST'
export ANTHROPIC_AUTH_TOKEN='YOUR_GATEWAY_TOKEN'
claude

PowerShell:

$env:ANTHROPIC_BASE_URL = 'https://YOUR_GATEWAY_HOST'
$env:ANTHROPIC_AUTH_TOKEN = 'YOUR_GATEWAY_TOKEN'
claude

不要把上面的示例地址、变量名和认证头直接当成任何服务的固定规则。官方网关文档说明,网关团队应提供 Base URL 和凭据类型;如果网关要求 API Key 而不是 Bearer Token,应改用 ANTHROPIC_API_KEY,并以网关要求的请求头为准。只设置 ANTHROPIC_BASE_URL 并不会自动替换已有登录凭据。

首次排查建议先用网关提供的最小请求或健康检查方式验证 URL 和凭据,再启动 Claude Code。官方示例使用 /v1/messages、模型名、max_tokens 和简单消息进行验证;模型名称、路径和请求头可能随网关实现不同,必须以网关文档为准。连接成功后,在 Claude Code 中运行 /status,确认 Base URL 和凭据来源均符合预期。详细说明见Connect Claude Code to an LLM gateway。

推荐:如果你正要把 Claude Code 接入兼容接口,可先在犀速-AI 官网核对当前提供的接入参数,再按本文的变量、重启和 /status 流程验证。

更换失败时,按这个顺序排查

  1. 确认凭据:新 Key 是否完整、是否已过期、是否属于正确的组织或工作区;官方文档说明不同 Key 类型的作用范围和失效条件可能不同。
  2. 确认旧变量:检查当前终端、~/.zshrc、~/.bash_profile、Windows 用户环境变量以及 Claude Code settings 文件,避免多个来源同时存在。
  3. 确认 Base URL:直连官方 API 时不要误保留旧代理地址;使用网关时,Base URL 必须由网关提供,并确认是否需要 /v1 路径。
  4. 确认认证头:ANTHROPIC_AUTH_TOKEN 和 ANTHROPIC_API_KEY 的映射不同,变量放错可能导致 401。
  5. 重启并复核:关闭 Claude Code 和旧终端,从新终端启动,再运行 /status。
  6. 最后看错误码:401 优先检查 Key 和认证头;403 检查组织、工作区或权限;404 检查 Base URL、路径和模型;429 检查限速或用量;超时则检查网络、代理和网关可达性。单一错误码不能替代具体响应内容,应结合服务端返回信息判断。

如果旧 Key 已经泄露,不要只在本地改变量;应在对应 Console 或密钥管理系统中创建新 Key,验证新 Key 后再按权限停用或删除旧 Key。官方认证文档介绍了个人 Key、服务账号 Key 和旧式工作区 Key 的差异,参见Authentication。

常见问题

Claude Code 更换 API Key 后,为什么仍然使用旧 Key?

最常见原因是旧 Key 仍存在于当前终端、Shell 配置文件、Windows 用户环境变量或 Claude Code settings 文件中。先运行 /status 查看实际认证来源,再清理重复变量,关闭 Claude Code 和旧终端,从新终端重新启动。

ANTHROPIC_API_KEY 和 /login 同时存在时,Claude Code 用哪个?

官方帮助中心说明,环境变量 API Key 会优先于已认证的订阅登录,并可能按该 API Key 所属账户计费。若想使用订阅登录,应清除 ANTHROPIC_API_KEY;如果要使用 API Key,则保留变量并用 /status 验证。

更换 API Key 后必须重启 Claude Code 吗?

建议重启。环境变量只会被已经启动的进程继承,修改终端或系统变量后,旧的 Claude Code 进程不一定能读取新值。关闭 Claude Code,重新打开终端并启动,再运行 /status。

通过 API 网关时应该使用 ANTHROPIC_API_KEY 还是 ANTHROPIC_AUTH_TOKEN?

取决于网关要求的认证头。官方网关文档通常将 ANTHROPIC_AUTH_TOKEN 对应 Authorization: Bearer,将 ANTHROPIC_API_KEY 对应 x-api-key;如果服务方没有说明,应向网关提供方确认,不要凭变量名猜测。

如何验证新 Key,又不把完整 Key 打印到终端?

不要使用 echo 或 printf 输出完整值。可以只检查变量是否存在和长度,或只显示掩码后的首尾少量字符;然后用 /status 查看认证来源,并使用不写文件、不提交代码的低风险请求确认连接。

换 Key 会自动停用 Claude Console 里的旧 Key 吗?

不会。本地替换环境变量只改变 Claude Code 后续使用的凭据,不等于删除或停用 Console 中的旧 Key。先验证新 Key,再根据组织权限和安全策略在 Console 中停用或删除旧 Key。

相关阅读

参考资料

  1. Manage API key environment variables in Claude Code(support.claude.com)
  2. Authentication - Claude Platform Docs(platform.claude.com)
  3. Get your Claude API key(platform.claude.com)