先确认环境变量是否存在且非空,再验证密钥长度与curl鉴权结果,最后排查引号、空格及平台状态;三步缺一不可。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

当你在终端运行 codex 命令后立即看到 Missing environment variable `OPENAI_API_KEY` 或 401 Unauthorized 报错,说明 Codex 根本没读到有效密钥——此时别急着重装或改配置文件,先用三步快速验证 API Key 本身是否就位、可用、无污染。
确认环境变量是否存在且非空
在当前终端中执行:
echo $OPENAI_API_KEY
如果输出为空(什么也不显示),说明变量根本没设;如果输出是 sk- 开头但长度不对(比如少于50个字符),大概率是复制时漏了末尾、多了换行或空格。这一步必须在你运行 codex 的**同一个终端会话**里执行,新开的终端不会继承旧会话的临时变量。
验证密钥格式与基础可用性
方法一:检查长度和开头
运行:echo $OPENAI_API_KEY | wc -c → 正常应返回 【52】(含末尾换行符)或 【51】(无换行)。若为 50 或 53,基本可断定前后混入了不可见字符。
方法二:用 curl 直接调 OpenAI 接口验证
运行:curl https://api.openai.com/v1/models -H "Authorization: Bearer $OPENAI_API_KEY" -s -o /dev/null -w "%{http_code}" → 若返回 200,密钥能通过鉴权;若返回 401,说明密钥已失效或被删除;若返回 000,则是网络或 base_url 错误,不是密钥问题。
注意:这个 curl 命令不依赖 Codex,只测密钥本身,结果可信度最高。别跳过它直接去翻 config.toml。
排查密钥是否被错误包裹或污染
第一步:检查是否用了引号
运行:env | grep OPENAI_API_KEY → 观察输出是否形如 OPENAI_API_KEY=sk-xxx。如果显示 OPENAI_API_KEY="sk-xxx" 或 OPENAI_API_KEY='sk-xxx',说明你在 export 时加了引号,【Codex 会把带引号的值当字符串字面量处理,直接拒绝使用】。
第二步:检查是否藏有空格
运行:echo "$OPENAI_API_KEY" | hexdump -C | head -n 2 → 查看输出最前面几行是否有 20(空格 ASCII 码)或 0a(换行)。只要出现,就得重新 clean 密钥再 export。
第三步:确认密钥来源是否可靠
登录 platform.openai.com/api-keys,核对列表中该密钥的状态是否为 “Active”,且创建时间、最后使用时间与你预期一致。已标记为 “Deleted” 或 “Revoked” 的密钥,curl 测试必然返回 401,必须新建。
大量免费API接口:立即使用
涵盖生活服务API、金融科技API、企业工商API、等相关的API接口服务。免费API接口可安全、合规地连接上下游,为数据API应用能力赋能!











