跳到正文

CC-007:401 无效令牌(活动配置源与预期不一致)


问题现象

Claude Code 返回 401 错误,日志中可见:

API Error: 401 {"error":{"type":"authentication_error","message":"invalid x-api-key"}}

或终端直接提示:

Invalid API key · Please run /login

已在预期平台创建 Key,但错误持续出现。不要仅凭 sk- 前缀判断密钥属于哪个平台或仍然有效。


根因分析

Claude Code 会合并 managed、user、project、local settings,并可能受命令行和环境变量影响。某个值被更高优先级来源覆盖、Base URL 与 Key 不属于同一服务、或网关要求了不同鉴权头,都可能返回 401。官方资料没有把普通 IDE/MCP 插件列为此错误的必然根因。


修复步骤

方式一(推荐):先做只读诊断

claude doctor

进入会话后运行 /status,记录活动 settings 来源、认证方式和 Base URL;截图或反馈前遮盖 Key、Token 和私人 URL。

方式二:在当前 shell 检查变量是否存在

printf 'BASE_URL=%s API_KEY=%s AUTH_TOKEN=%s\n' \
  "${ANTHROPIC_BASE_URL:+set}" \
  "${ANTHROPIC_API_KEY:+set}" \
  "${ANTHROPIC_AUTH_TOKEN:+set}"
# Windows(PowerShell,只显示是否存在)
'ANTHROPIC_BASE_URL','ANTHROPIC_API_KEY','ANTHROPIC_AUTH_TOKEN' |
  ForEach-Object { "$_=" + [bool](Get-Item "Env:$_" -ErrorAction SilentlyContinue) }

不要打印变量值。若发现旧变量,按 CC-016 逐项清理;不要用新的全局变量强行盖住未知来源。

方式三:检查 settings scopes

找到被修改的配置文件(路径因平台而异),检查 env 段中的 ANTHROPIC_BASE_URLANTHROPIC_API_KEYANTHROPIC_AUTH_TOKEN 以及 apiKeyHelper 设置是否与预期一致;官方 settings.json 中没有顶层 apiKey / baseURL 字段:

平台配置文件路径
Windows%USERPROFILE%\.claude\settings.json
macOS / Linux~/.claude/settings.json

预防措施

做法避免的问题
/statusclaude doctor 确认活动来源避免把猜测当成根因
Base URL 与 Key 只按同一服务的正式说明配对避免把密钥发送到错误端点
修改前备份并只改一个 scope便于恢复和定位覆盖关系

CC Switch 是第三方社区配置工具;如选择使用,只从 官方 GitHub 获取,并先查看它准备写入的文件和备份提示。

资料来源:Claude Code 配置诊断 · Settings scopes · 环境变量参考(2026-07-26 核对)