Remote SSH使用Codex 插件踩坑实录:如何从403 forbidden到成功登录
之前我使用cursor来进行vibe coding,但是一直被token消耗过快的问题所困扰,正好我有chatgpt的plus会员,遂决定转到codex阵营。
由于众所周知的情况,尽管使用了魔法,但是当我使用vscode远程连接服务器的时候,仍然出现了登录异常,如下图:

本来以为只是很小的网络环境问题,结果从下午折腾到晚上。实际上是三层问题叠在一起:代理出口、OAuth 回调、插件 IPC 权限。水平有限故踩了很多坑,希望这篇文章能帮助大家。
我先在远程确认当前到底走哪条代理链路:
echo $http_proxy $https_proxy $all_proxycurl -x http://127.0.0.1:7890 https://api.ipify.org; echocurl -x http://127.0.0.1:12789 https://api.ipify.org; echo
显示 7890 已被占用。我把远程入口改成了 12789,再转发到本地实际代理端口(我本机是 7897)。
本机config 最终写成这样:
Host <你的服务器名称>HostName <你的服务器IP>User <你的用户名>RemoteForward 12789 127.0.0.1:7897LocalForward 1455 127.0.0.1:1455
这两条都要有。RemoteForward负责远程出网走本机代理,LocalForward负责浏览器 OAuth 回调回到远程 1455。
然后回到远程,我把 shell 里的代理统一到 12789(也就是 SSH 反向转发入口):
export http_proxy=http://127.0.0.1:12789export https_proxy=http://127.0.0.1:12789export all_proxy=socks5h://127.0.0.1:12789export NO_PROXY=localhost,127.0.0.1,::1export no_proxy=$NO_PROXY
验证出网:
curl --max-time 10 -x http://127.0.0.1:12789 https://api.ipify.org; echo
我当时拿到的是新的出口 IP,说明终于走到了本机代理链路。
接着我把远程 Cursor 的 HTTP 代理也配了:
{"http.proxy": "http://127.0.0.1:12789","http.proxySupport": "on","http.noProxy": ["localhost", "127.0.0.1", "::1"]}
到这里网络和回调基本都没问题了,可以通过codex cli成功登录。但codex插件却出现了卡死的情况。
这一步最坑,我原以为又是网络问题。结果看日志发现是 IPC 权限报错。排查命令:
grep -R "codex-ipc\|EACCES" ~/.cursor-server/data/logs -nls -la /tmp/codex-ipcid
机器上/tmp/codex-ipc属主是别的用户,权限是drwxrwxr-x,我没写权限,所以扩展无法创建ipc-1007.sock。解法不是重装插件,而是给自己一个私有TMPDIR,让 IPC 不再落到共享/tmp/codex-ipc里。
先建目录:
mkdir -p ~/.tmpchmod 700 ~/.tmp
然后在~/.bashrc、~/.profile、~/.bash_profile都加上:
: "${TMPDIR:=${HOME}/.tmp}"mkdir -p "$TMPDIR"chmod 700 "$TMPDIR" 2>/dev/null || trueexport TMPDIR
完结画面:

btw,看了知乎和小红书的相关帖子,应该有别的更方便的办法。不过终归是解决了codex登陆问题,干饭去喽!
夜雨聆风