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_URL、ANTHROPIC_API_KEY、ANTHROPIC_AUTH_TOKEN 以及 apiKeyHelper 设置是否与预期一致;官方 settings.json 中没有顶层 apiKey / baseURL 字段:
| 平台 | 配置文件路径 |
|---|---|
| Windows | %USERPROFILE%\.claude\settings.json |
| macOS / Linux | ~/.claude/settings.json |
预防措施
| 做法 | 避免的问题 |
|---|---|
用 /status 和 claude doctor 确认活动来源 | 避免把猜测当成根因 |
| Base URL 与 Key 只按同一服务的正式说明配对 | 避免把密钥发送到错误端点 |
| 修改前备份并只改一个 scope | 便于恢复和定位覆盖关系 |
CC Switch 是第三方社区配置工具;如选择使用,只从 官方 GitHub 获取,并先查看它准备写入的文件和备份提示。
资料来源:Claude Code 配置诊断 · Settings scopes · 环境变量参考(2026-07-26 核对)