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_URL、ANTHROPIC_API_KEY、ANTHROPIC_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 核对)