跳到正文

CC-018:登录过官网后 API Key 失效,无法使用中转服务


问题现象

曾在终端执行过 claude 并通过官网完成了 OAuth 登录(浏览器跳转授权),之后切换到中转 API 时,Claude Code 忽略配置的 API Key,持续使用 OAuth 令牌向官方端点请求,表现为:

  • 401 / 认证失败
  • 请求仍发往 api.anthropic.com,与预期的第三方网关不同
  • 修改 settings.json 或环境变量后仍无效

在服务器环境(CentOS / Ubuntu)下尤为常见,因为初次配置时容易误触 OAuth 流程。


根因分析

用户执行 claude,触发 OAuth 登录流程
  → 本机保留官方登录状态,同时存在第三方网关环境变量
  → 实际认证方式、Base URL 或 shell 环境与用户预期不一致
  → 请求发往非预期端点或使用非预期凭据
  → 401 / 连接失败

修复步骤

第一步:核对当前认证与端点

先在 Claude Code 中使用 /status 查看实际 Base URL,并检查当前 shell 的 ANTHROPIC_BASE_URLANTHROPIC_API_KEYANTHROPIC_AUTH_TOKEN 是否来自预期配置。不要打印完整 Key。

如果你明确决定停止使用 Anthropic 官方登录,再执行:

claude auth logout

执行后终端提示登出成功。

第二步:写入中转 API 配置

使用文本编辑器合并到 ~/.claude/settings.json,不要用重定向命令覆盖已有权限、插件或组织设置:

{
  "env": {
    "ANTHROPIC_API_KEY": "sk-xxx",
    "ANTHROPIC_BASE_URL": "https://foropencode.com"
  }
}

foropencode.com 是第三方网关,不是 Anthropic。实际使用 ANTHROPIC_API_KEY 还是 ANTHROPIC_AUTH_TOKEN,应按该网关正式文档选择。

第三步:验证配置写入成功

使用 python3 -m json.tool ~/.claude/settings.json >/dev/null 做本地语法检查,再启动新会话并用 /status 确认 Base URL。不要把含密钥的文件粘贴到在线校验网站。

第四步:重新启动 Claude Code

claude

正常进入交互界面即修复成功。


预防措施

做法避免的问题
在切换认证方式前先用 /status 核对当前端点误把官方登录问题归因于网关
只有明确停止使用官方登录时才执行 claude auth logout意外退出仍需要的官方账户
本地验证 JSON,避免打印或上传完整配置Key 通过终端记录或在线工具泄露

资料来源:Claude Code LLM Gateway 配置 · Claude Code 设置(2026-07-26 核对)