news 2026/10/12 2:26:39

macOS Codex 通过 SSH 连接 Windows 失败

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
macOS Codex 通过 SSH 连接 Windows 失败

macOS Codex 通过 SSH 连接 Windows 失败

问题

macOS Codex 通过 SSH 连接 Windows,界面显示“SSH 连接失败”,日志包含:

** WARNING: connection is not using a post-quantum key exchange algorithm. ** This sessionmay be vulnerable to "store now, decrypt later"attacks. ** The server may need to be upgraded.See https://openssh.com/pq.html Authenticatedto 162.105.88.199 ([162.105.88.199]:22) using"publickey".入00:1:301+ec "$SHELL" -i-c '"set loginsh=1; if (-r

etc/csh.login ) source00010000💯343+…-/etc/csh.login ) source /etc/csh.login; if ( -r~/.login)source …
Categorylnfo : ParserError: (😃 [,ParentContainsErrorRecordException +FullyQualifiedErrorld : MissingStatementBlockTransferred: sent 3856, received 3208 bytes, in0.3 seconds Bytes per second: sent 14316.1,received 11910.3

出错命令包含$SHELL、/etc/csh.login等 Unix shell 内容。

SSH 认证已成功,失败发生在远程环境启动阶段。

成因:Codex SSH 启动脚本依赖 Unix shell,却被 Windows PowerShell 解析。

解决思路

两种方式:

  • 使用 Codex“控制其他设备”功能,访问原生 Windows。
  • 通过 SSH 连接 Windows 内的 WSL Ubuntu。

本文采用第二种方式,保留 Windows SSH 默认 shell:

Mac → Windows SSH → wsl.exe → WSL SSH → Bash → Linux Codex

配置 WSL SSH

在 Ubuntu 中安装 OpenSSH Server 和 netcat,并启用 systemd。

创建独立 SSH 配置:

# /etc/ssh/sshd_config_codex Port 2222 ListenAddress 127.0.0.1 HostKey /etc/ssh/ssh_host_ed25519_key PubkeyAuthentication yes AuthorizedKeysFile .ssh/authorized_keys PasswordAuthentication no KbdInteractiveAuthentication no PermitRootLogin no AllowUsers <WSL用户名> UsePAM yes Subsystem sftp internal-sftp

将 Mac 公钥加入 WSL 用户的~/.ssh/authorized_keys,目录权限设为700,文件权限设为600。

创建专用服务:

# /etc/systemd/system/codex-wsl-ssh.service [Unit] Description=SSH listener for Codex WSL After=network.target [Service] Type=simple ExecStartPre=/usr/bin/install -d -m 0755 /run/sshd ExecStartPre=/usr/sbin/sshd -t -f /etc/ssh/sshd_config_codex ExecStart=/usr/sbin/sshd -D -e -f /etc/ssh/sshd_config_codex Restart=on-failure RestartSec=3 [Install] WantedBy=multi-user.target

启用服务:

sudo systemctl daemon-reload sudo systemctl enable --now codex-wsl-ssh.service

配置 Mac SSH

在~/.ssh/config中添加:

Host labwin-pub HostName <Windows地址> User <Windows用户名> Host labwin-wsl HostName 127.0.0.1 Port 2222 User <WSL用户名> HostKeyAlias labwin-wsl IdentityFile ~/.ssh/id_ed25519 IdentitiesOnly yes ProxyCommand ssh -T -o BatchMode=yes labwin-pub wsl.exe -d Ubuntu -- nc 127.0.0.1 2222

需要两层密钥登录都正常:Mac 到 Windows、Mac 到 WSL。首次连接应核对 WSL 主机指纹。

验证:

ssh labwin-wsl uname -s

结果应为Linux。

配置 WSL 代理

Windows Codex 正常、WSL 却超时或提示unsupported_country_region_territory时,应检查 WSL 是否实际使用了 Windows 的网络配置。

本例 Windows 代理环境变量指向http://127.0.0.1:7897。为了让 WSL 使用同一地址,在 Windows 用户目录的.wslconfig中合并:

[wsl2] networkingMode=mirrored autoProxy=false dnsTunneling=true

保存工作后执行wsl --shutdown,再启动 Ubuntu。

这里采用 Windows 环境变量作为代理来源。autoProxy跟随的是 Windows 系统代理设置,不能代替环境变量同步。

从 Windows 启动 WSL

将以下条目合并到 Windows 的WSLENV环境变量中,保留已有条目:

HTTP_PROXY/u:HTTPS_PROXY/u:NO_PROXY/u:ALL_PROXY/u

在 WSL 中同步大小写变量:

export http_proxy="$HTTP_PROXY" export https_proxy="$HTTPS_PROXY" export no_proxy="$NO_PROXY" export all_proxy="$ALL_PROXY"

WSLENV 传递的是启动 WSL 的 Windows 进程所持有的变量。修改持久化变量后,需要重新打开 Windows Terminal、IDE 等启动应用。

通过 SSH 启动 WSL Codex

仅设置 WSLENV 不足以覆盖 SSH 和后台服务的启动环境。

在实际启动 Codex 的入口读取 Windows 保存的代理变量,再传给 Codex,而不是只依赖 WSLENV。

安装并登录 Linux Codex

在 Ubuntu 中准备 Linux 版 Node.js/npm,再执行:

npm install -g @openai/codex command -v codex codex --version codex login

按输出链接完成登录。

在 Codex 应用内添加连接

写入 SSH 配置不等于已经添加到应用的连接列表。

在 Mac Codex 中打开:

设置 → 连接 → SSH → 添加 → labwin-wsl

启用连接,选择/mnt/c/...或/mnt/e/...下的项目目录,字母对应 Windows 盘符。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/12 2:26:23

无人机编队组合导航的核心原理与工程要点

目录 一、为什么要组合导航 二、INS 惯导原理 三、机械编排 四、松耦合/紧耦合/深耦合 五、组合导航中的 EKF 六、编队场景的组合导航 七、常见问题与排障 本文面向无人机编队开发者,系统梳理组合导航的核心原理与工程要点。编队飞行对位置精度、更新频率和一致性要求极高,单…

作者头像 李华
网站建设 2026/10/12 2:26:08

程序员转AI Agent:你的工程经验是巨大优势,附完整学习路线!

随着AI Agent岗位的兴起&#xff0c;许多程序员开始思考转型。文章指出&#xff0c;后端开发、业务系统开发者及架构师都有机会切入此领域。关键在于利用现有工程经验结合AI能力&#xff0c;而非单纯学习算法。文章提出五步学习路线&#xff0c;强调AI应用落地能力的重要性&…

作者头像 李华
网站建设 2026/10/12 2:25:30

AIOps实战15:运维Agent与Copilot,怎么让AI安全地动手干活

AIOps实战15&#xff1a;运维Agent与Copilot&#xff0c;怎么让AI安全地动手干活我是老计。这一篇是 LLM for Ops 的重头戏&#xff0c;也是我做 K8sChat 的核心&#xff0c;运维 Agent。前面讲的日志分析、RAG&#xff0c;大模型都还只是在动嘴&#xff0c;帮你分析、帮你答。…

作者头像 李华
网站建设 2026/10/12 2:23:07

本地Agent接入自组AI硬件:Muse Gadgets实现语音交互设备直连

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/12 2:23:04

STM32F1深度实战:架构、时钟、外设与避坑指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/12 2:22:59

基于微信小程序的智能家居设备管控系统设计与实现

温馨提示&#xff1a; 本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a; 本人主页置顶文章(点我)开头有 CSDN平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a; 本人主页置顶文章(点我)开头有 CSDN 平…

作者头像 李华