Claude Code 更换 API Key:设置、验证与冲突排查
简答: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 高级设置文档。
- 确认认证来源:进入 Claude Code,运行
/status,查看当前是环境变量 API Key、网关凭据,还是 claude.ai 登录。 - 设置新凭据:只想临时测试就设置当前终端变量;需要长期使用才修改 Shell 配置文件或 Windows 用户环境变量。
- 重启并复核:关闭当前 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 SilentlyContinueWindows 永久设置
打开“系统属性 → 高级 → 环境变量”,在“用户变量”中找到 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 未设置"
}
更换后如何确认真的生效
- 关闭已经运行的 Claude Code。
- 关闭旧终端,打开一个新终端;如果使用临时变量,就在同一个新终端重新设置变量。
- 从该终端运行
claude。 - 在 Claude Code 中运行
/status,确认显示的认证来源是预期的 API Key、Auth token、网关或登录方式。 - 发送一个不涉及写文件、提交代码、删除文件或修改生产环境的简单请求,确认没有认证错误。
/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'
claudePowerShell:
$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 流程验证。
更换失败时,按这个顺序排查
- 确认凭据:新 Key 是否完整、是否已过期、是否属于正确的组织或工作区;官方文档说明不同 Key 类型的作用范围和失效条件可能不同。
- 确认旧变量:检查当前终端、
~/.zshrc、~/.bash_profile、Windows 用户环境变量以及 Claude Code settings 文件,避免多个来源同时存在。 - 确认 Base URL:直连官方 API 时不要误保留旧代理地址;使用网关时,Base URL 必须由网关提供,并确认是否需要
/v1路径。 - 确认认证头:
ANTHROPIC_AUTH_TOKEN和ANTHROPIC_API_KEY的映射不同,变量放错可能导致 401。 - 重启并复核:关闭 Claude Code 和旧终端,从新终端启动,再运行
/status。 - 最后看错误码: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。
相关阅读
参考资料
- Manage API key environment variables in Claude Code(support.claude.com)
- Authentication - Claude Platform Docs(platform.claude.com)
- Get your Claude API key(platform.claude.com)