CC-021:401 Invalid API Key format(Key 含不可见字符)
问题现象
API Key 已写入配置,目视检查看起来正确,但请求仍返回以下错误之一:
Invalid API Key formatAPI Error: 401 Unauthorized重新填写 Key 后问题依然复现。相同提示也可能来自 Key 与 Base URL 不属于同一服务,不应只按不可见字符处理。
根因分析
用户从 PDF / 网页 / 截图获取 Key
→ 复制过程中混入不可见字符(零宽空格、不换行空格、\r 换行符等)
→ 或 OCR 识别将相似字符误读(0/O、1/l/I)
→ 写入环境变量时字符串被污染
→ API 服务端对 Key 格式校验失败 → 401 / Invalid format常见污染来源:
| 来源 | 典型污染字符 |
|---|---|
| 从 PDF 复制 | 零宽空格(U+200B)、不换行空格(U+00A0) |
| 从网页复制 | HTML 实体残留、换行符 |
| 截图 OCR 识别 | 字符误识别(如 0 → O,l → 1) |
| 粘贴到终端 | 末尾混入 \r(Windows 换行符) |
这是一个可能原因,不是官方对所有 401 的统一根因。先用
/status核对最终域名和活动配置来源。
修复步骤
第一步:检测 Key 是否含有不可见字符
以下命令只报告长度和是否含空白/控制字符,不打印 Key 本身:
python3 -c 'import os; v=os.getenv("ANTHROPIC_API_KEY", ""); print({"set": bool(v), "length": len(v), "has_whitespace": any(c.isspace() for c in v), "has_control": any(ord(c) < 32 for c in v)})'第二步:重新获取干净的 Key
如果 Base URL 是 Anthropic 官方端点,先从 Anthropic Console 进入当前 API Key 管理页重新复制或轮换 Key;如果是第三方网关,只能在该网关自己的正式控制台管理 Key。不要依赖可能变化的深层设置 URL,也不要混用两边的密钥。
第三步:重新写入环境变量
# 编辑配置文件
nano ~/.zshrc # macOS/Linux,或对应的 ~/.bashrc
# 删除旧值后,粘贴从对应控制台复制的新值
export ANTHROPIC_API_KEY='sk-xxx'
# 使配置生效
source ~/.zshrc第四步:验证
重新运行上面的非回显检查,然后用 claude doctor 与 /status 核对配置。若真实 Key 曾进入截图、剪贴板同步、在线 JSON 校验站或公共日志,应立即在对应平台轮换,而不只是重新粘贴。
预防措施
| 做法 | 避免的问题 |
|---|---|
| 始终从 Console 的复制按钮获取 Key | 避免手打或 OCR 引入字符错误 |
| 使用 shell 正常引号并避免把 Key 写入命令历史 | 降低特殊字符解析与泄露风险 |
| 使用不回显内容的检查 | 在不暴露 Key 的前提下发现空白或控制字符 |
资料来源:Claude Code 环境变量参考 · Anthropic Console API Keys · 配置诊断(2026-07-26 核对)