首页 › Claude Code › 错误 › 401 / 403 身份验证
概览安装CLI 参考文档定价与限制Agent SDK技能与插件GitHub网页、桌面与 IDE模型错误是否开源?教程学生指南QA 自动化与 Cursor 对比与 Codex 和 OpenCode 对比子智能体钩子MCP生态系统VS CodeOpenRouter速率限制中文指南
最后更新:2026 年 11 月

Claude Code 401 和 403:身份验证凭据无效、API 密钥无效、“未登录”、host_not_allowed

401 表示 Claude Code 发送的凭据未被接受;403 表示凭据已被接受,但请求不被允许。问题跟踪器上几乎所有 401 报告都归结于发送了哪个凭据,因为 Claude Code 可以同时保存三种凭据:OAuth 登录凭据、一个 ANTHROPIC_API_KEY (位于环境变量中),以及一个 apiKeyHelper (位于设置中)。首先确认当前使用的是哪一个。

TLDR

  • /status 会显示当前使用的身份验证方式和端点。环境变量中的 API 密钥始终优先于 /login.
  • invalid x-api-key / Invalid API key · Fix external API key ——该密钥不属于以下配置中的端点: ANTHROPIC_BASE_URL.
  • 401 Invalid authentication credentials 在以下操作之后 /login ——OAuth 令牌被撤销,或刷新过程出现问题;退出登录、清除已存储的凭据,然后重新登录。
  • 403——代理、沙箱出站规则或组织成员资格阻止了请求;凭据本身没有问题。

错误消息

API Error: 401 {"type":"error","error":{"type":"authentication_error","message":"Invalid authentication credentials"}}
API Error: 401 invalid x-api-key
Invalid API key · Fix external API key
Not logged in · Please run /login
Login expired · Please run /login
API Error: 403 x-deny-reason: host_not_allowed
Error: Poll: Access denied (403): Account is no longer a member of the organization associated with this token.

步骤 1:正在发送哪个凭据?

claude
/status                       # auth method, endpoint, model
echo $ANTHROPIC_API_KEY | cut -c1-12
echo $ANTHROPIC_BASE_URL
grep -n apiKeyHelper ~/.claude/settings.json

了解后,优先级其实很简单:一个 ANTHROPIC_API_KEY (位于环境变量中,或由以下内容返回的值: apiKeyHelper)会取代 OAuth 登录凭据。一个很久以前在 .bashrc 中导出的旧密钥,或来自另一个网关的密钥,是导致 401 在每次 /login后仍然出现的典型原因。取消设置该变量,或设置正确的密钥。

使用 API 密钥时出现 401:密钥与端点不匹配

invalid x-api-key 和 Invalid API key · Fix external API key 表示端点无法识别该密钥。一个密钥只属于一个端点:Anthropic 控制台密钥只能用于 api.anthropic.com;网关密钥只能用于该网关的 ANTHROPIC_BASE_URL。将控制台密钥发送到 https://aiprimetech.io ,或将网关密钥发送到 Anthropic,都会返回 401。还要检查粘贴到变量中的内容末尾是否带有换行符或引号,并确认密钥未在控制面板中被撤销或轮换。

curl -s https://aiprimetech.io/v1/models -H "x-api-key: $ANTHROPIC_API_KEY" -H "anthropic-version: 2023-06-01" | head -c 300
# a JSON list = key accepted; authentication_error = wrong key for this host

/login 后出现 401:OAuth 令牌

API Error: 401 Invalid authentication credentials 在浏览器登录成功后立即出现,是报告最多的情况(#69706,尚未关闭,Windows,Pro 订阅有效; #44265,登录后立即报告令牌已过期)。

第一个讨论帖中的一位评论者发现,已存储的 refreshToken 在以下文件中是空字符串: ~/.claude/.credentials.json,这会导致每个请求都返回 401,直到重新登录并替换该文件。 #54443 记录了服务器在本地存储的到期时间之前就拒绝会话、且刷新调用返回 400 的情况,因此 Please run /login 每隔几小时就会再次出现;在同一个账户上运行多个 Claude Code 实例会让问题更严重,因为它们会争相刷新同一个令牌。 #44585: /login 输出“登录成功”后,立即恢复为“未登录”。

  • /logout,然后删除已存储的凭据(~/.claude/.credentials.json 适用于 Linux 和 Windows;macOS 上则是钥匙串中的“Claude Code-credentials”条目),然后 /login 在未安装 Claude in Chrome 扩展的浏览器中执行。
  • 登录前,关闭其他 Claude Code 窗口、桌面应用和 IDE 扩展;它们会刷新同一个令牌。 OAuth 错误页面 介绍了“无法刷新 OAuth 令牌:另一个 Claude Code 进程正在刷新它”的情况。
  • claude update: #54235 将一个 401 问题追溯到了特定版本和一个测试版功能标志环境变量;身份验证的回归问题通常会很快得到修复。
  • 无图形界面或 SSH 机器: claude setup-token 在可以通过浏览器登录的机器上执行,然后在目标机器上使用该令牌。
  • 先恢复工作比调试更重要:设置 ANTHROPIC_API_KEY 后,Claude Code 就完全不会使用 OAuth。

403:允许身份验证,但不允许执行该操作

  • `x-deny-reason: host_not_allowed` ——请求前方的代理拒绝访问目标地址。这种情况出现在网页端或桌面端沙箱的出站访问允许列表中(#93562,尚未关闭:即使选择了“所有域名”,内置列表之外的主机在 CONNECT 上仍会收到 403),也出现在企业代理中。将主机添加到允许列表,或在沙箱外运行 CLI。
  • 沙箱 git 代理 403 在 git push 到现有分支(#57356)——这是沙箱的 git 代理策略所致,并非 GitHub 的问题。请从普通终端推送。
  • `Account is no longer a member of the organization associated with this token` ——令牌是为你已退出或发生变更的组织签发的; claude remote-control 过去会因此导致每个会话崩溃(#53563)。退出并重新登录,为当前组织签发新令牌。
  • 网关返回 403 ——密钥有效,但账户已被禁用、余额不足以使用该模型,或你的套餐不包含该模型;响应正文会说明具体原因。在修改任何客户端配置之前,先检查控制面板。
  • `/feedback` 返回 403 (#55348)——该端点发生了服务端故障;这不会影响模型。

改用 API 密钥

unset ANTHROPIC_API_KEY ANTHROPIC_BASE_URL   # back to the subscription login
# or: bypass OAuth entirely
export ANTHROPIC_BASE_URL=https://aiprimetech.io
export ANTHROPIC_API_KEY=your_gateway_key
claude

网关密钥就是普通的 API 密钥:不涉及 OAuth、令牌刷新或组织成员资格,401 这一类问题也就简化为“密钥是否与主机匹配”。如果你陷入了 /login 循环,又需要在今天交付,这是最快的解决办法;首次加密货币充值金额翻倍(+50%)。

厌倦了与这个问题反复较劲?

改为通过 AI Prime Tech 网关运行 Claude Code:使用相同的 Claude 模型,由网关自己的上游账户提供服务,设置两个环境变量即可切换,新账户可获得 $5 免费 API 额度 使用优惠码 FIXIT — 无需银行卡。

export ANTHROPIC_BASE_URL=https://aiprimetech.io
export ANTHROPIC_API_KEY=your_key

使用优惠码 FIXIT 创建账户

常见问题

如何修复 Claude Code 中的“API 错误:401 身份验证凭据无效”?

使用 /status 检查当前生效的凭据。取消设置过期的 ANTHROPIC_API_KEY,或在关闭其他 Claude Code 实例后,执行 /logout,删除 ~/.claude/.credentials.json(macOS 上删除钥匙串中的凭据),再执行 /login 重新登录。作为绕过方案,使用 API 密钥可以完全跳过 OAuth。

为什么 Claude Code 提示 API 密钥无效?

该密钥不属于 ANTHROPIC_BASE_URL 中指定的端点。控制台密钥需要使用 api.anthropic.com;网关密钥需要使用该网关的 URL。同时检查粘贴时是否带入了空白字符,以及密钥是否已被撤销。

为什么 Claude Code 一直要求我运行 /login?

OAuth 令牌在本地到期时间之前就被拒绝,或刷新失败,通常是因为多个 Claude Code 进程共用同一个令牌。关闭其他进程,退出登录,清除已存储的凭据,重新登录,并更新 CLI。

403 x-deny-reason: host_not_allowed 是什么意思?

代理(沙盒出站访问允许列表或企业代理)拒绝了目标主机。你的凭据没有问题;允许访问该主机,或在沙盒外运行。

通过网关运行 Claude Code

相同的模型,两个环境变量,面值 7.69231 倍的额度,或固定费率不限量方案。 新账户:使用优惠码 FIXIT 可获得 $5 免费 API 额度。

获取 API 密钥 查看不限量方案

AI Prime Tech 是独立的 API 网关,与 Anthropic 无关联,也未获得其认可或赞助。“Claude”和“Claude Code”是 Anthropic 的商标。此处介绍的 Claude Code 功能以撰写时 Anthropic 的公开文档为依据,且经常发生变化;本页面的价格和模型列表读取自此网关的实时设置。

更多 Claude Code 指南

Claude Code 错误及修复方法Claude Code“API 错误:500”:含义及真正有效的修复方法Claude“过载”错误(API 错误 529):含义及应对方法Claude Code API 错误 400:提示词过长、工具使用并发问题及其他错误Claude Code OAuth 错误:超出 15000ms 超时时限,以及状态码 500“Claude Code 进程退出,退出码为 1”:如何找到真正的错误并修复Claude“提示词过长”“输入对于请求的模型而言过长”和“已达到上下文上限”:什么占满了窗口,以及如何释放空间已达到 Claude 使用上限:会话、每周和 Opus 上限、“指定的 API 使用上限”、“额度余额过低” — 以及应对方法Claude Code 连接错误:ECONNRESET、响应中途连接丢失、“正在等待 API 响应”、“无法连接到 API”、SSL 证书错误Claude Code 挂起、卡住或停止响应:如何定位卡住的位置并恢复Claude.ai 无法正常使用:“出了点问题”、容量限制、“已达到 5 小时上限”、“登录时出错”及其他问题