Claude Code 报错 Invalid API key · Please run /login 怎么解决

发出去的 Key 不对。最常见的原因是机器上同时留着 ANTHROPIC_API_KEY 和 ANTHROPIC_AUTH_TOKEN,Claude Code 用了你没想到的那一个。

报错原文

Invalid API key · Please run /login

也可能显示为 API Error: 401,或返回体里有 authentication_error、invalid_api_key。

这条报错是什么意思

401 表示服务端不认这个凭据。Claude Code 有两种发 Key 的方式:ANTHROPIC_AUTH_TOKEN 发 Authorization: Bearer 请求头,ANTHROPIC_API_KEY 发 x-api-key 请求头。两个都设时,很容易发错。

常见原因

  1. 机器上还留着旧的 ANTHROPIC_API_KEY(以前用官方 API 时设的),和新平台的 Key 冲突。
  2. Key 复制不全,或者首尾多了空格、换行。
  3. 终端里的环境变量和 settings.json 里的值不一样,终端里的优先级更高。
  4. 官方 Key 发给了第三方地址,或者第三方 Key 发给了官方地址。

怎么排查

  1. 列出所有 ANTHROPIC_ 开头的变量名,看有没有重复或残留:

    # macOS / Linux:只列变量名,不打印 Key
    env | grep ^ANTHROPIC_ | cut -d= -f1
    
    # Windows PowerShell
    (Get-ChildItem Env:ANTHROPIC*).Name
  2. 删掉不用的那个,用第三方平台时推荐只保留 ANTHROPIC_AUTH_TOKEN:

    unset ANTHROPIC_API_KEY
    # 再到 ~/.zshrc、~/.bashrc 等文件里删掉对应的 export 行
  3. 重新从平台控制台复制 Key,新开终端后再启动 Claude Code。

  4. 还不行,用下面的命令直接请求一次。返回 401 说明 Key 本身有问题;能正常返回说明问题在 Claude Code 的配置:

    curl -sS "$ANTHROPIC_BASE_URL/v1/messages" \
      -H "Authorization: Bearer $ANTHROPIC_AUTH_TOKEN" \
      -H "anthropic-version: 2023-06-01" \
      -H "content-type: application/json" \
      -d '{"model":"claude-opus-5-5","max_tokens":16,"messages":[{"role":"user","content":"hi"}]}'

curl 命令里用的是 Claude Code 的同名环境变量,在设好变量的终端里直接运行即可,Key 不会显示出来。Windows 用户可以在 Git Bash 或 WSL 里运行。

相关报错

配置有问题?

用 配置生成器 重新生成一份环境变量或 settings.json,Key 只在本地拼接。

需要国内能直接连接的 Anthropic 原生协议地址,可以看 TeamoRouter 的 Claude Code 接入文档(利益相关:本站由 TeamoRouter 团队维护,它不是 Anthropic 官方渠道)。