登录缓存用 cli_auth_credentials_store,不要和 exec --ephemeral 抄混
file 写 auth.json;keyring 走系统钥匙串;auto 失败才回文件;ephemeral 只在当前进程内存。这不是会话 rollout 开关。
把登录缓存放哪,写在用户 config 顶层,任何 [table] 之前:
cli_auth_credentials_store = "keyring"
官方四种值:
file:写CODEX_HOME/auth.json(默认家目录是~/.codex)。这是常见默认。keyring:只走操作系统凭据库,不可用就失败。auto:钥匙串可用就用,否则回退到auth.json。ephemeral:只留在当前进程内存,不落盘。
这不是 codex exec --ephemeral。后者管会话 rollout 写不写盘;登录态仍按上面的存储走。不要把两条都叫 ephemeral 就当成一件事。
CLI 和 IDE 扩展共用同一份登录缓存。一边 codex logout,另一边下次也要重新登录。ChatGPT 会话在使用中会自动刷新,所以活跃会话通常不必每天再走浏览器。
无头机拷 auth.json 只适用于 file,或 auto 已经回退到文件。keyring / ephemeral 没有这份可拷文件。要拷贝就先在有浏览器的机器上改成 file 再 codex login,或改用 --device-auth / 按次 CODEX_API_KEY。
管理员可用本机 requirements.toml 或 macOS MDM 强制这个键;一旦钉死,用户 config.toml 和 -c 都改不了。云端托管的 requirements 会忽略这项。chatgpt_base_url 同理。
部分 Learn 页还只写三种值,没写 ephemeral。以本机 codex --help 和 developers 配置参考为准。改完重新 codex login。