无头环境用 device-auth 或按次 API key

codex login 走 ChatGPT OAuth;远程盒用 --device-auth;脚本用 --with-api-key 从 stdin 读。

codex login
codex login --device-auth
printenv OPENAI_API_KEY | codex login --with-api-key
codex login status   # 已登录则退出码 0
codex logout

企业钉登录方式和工作区,用顶层 forced_login_method / forced_chatgpt_workspace_id。凭据不符会登出并退出。

自定义 CA:CODEX_CA_CERTIFICATE(回退 SSL_CERT_FILE)。

浏览器回调被挡时,优先 codex login --device-auth。还不行就从本机转发 CLI 默认回调口:

ssh -L 1455:localhost:1455 user@remote
# 在这条 SSH 会话里跑 codex login,用本机浏览器打开打印出的地址

有浏览器的机器登录成功后,可把 ~/.codex/auth.json 拷到无头机(当密码)。cli_auth_credentials_store = "keyring" 时没有这份文件。

浏览器回调失败先看 ~/.codex/log/codex-login.log。设了 log_dir 就跟过去。这不是明文 codex-tui.log

不要把 login 放进会把 auth.json 打进日志的共享镜像构建。

来源