Windows 与 Codex App 通过 SSH 连接 Linux 环境配置流程
本文介绍如何在 Windows 中通过 SSH 连接 VMware 里的 Linux 虚拟机,并让 Codex App 使用该远程环境。内容包括检查 Windows OpenSSH 工具、获取 Linux 用户名和 IP、确认 sshd 服务、配置 SSH Host、设置 SSH key 免密登录,以及开启 Codex App 远程连接。完成后,可在 PowerShell 中直接操作 Linux,
Windows 与 Codex App 通过 SSH 连接 Linux 环境配置流程
1. 配置目标
通过 SSH 将 Windows 与 Linux 环境连通,使 Windows 端具备以下能力:
PowerShell 可直接登录 Linux 终端
PowerShell 可远程执行 Linux 命令
Codex App 可识别 SSH 远程主机
Codex App 可在远程 Linux 工作区中执行命令和操作文件
2. Windows 端检查 SSH 工具
在 Windows PowerShell 中检查 OpenSSH 客户端工具是否可用:
where.exe ssh
where.exe scp
where.exe ssh-keygen
正常情况下会输出类似路径:
C:\Windows\System32\OpenSSH\ssh.exe
C:\Windows\System32\OpenSSH\scp.exe
C:\Windows\System32\OpenSSH\ssh-keygen.exe

如果能够看到这些路径,说明 Windows 已具备 SSH 连接、文件传输和密钥生成能力。
3. Linux 端确认登录用户
在 Linux 终端中查看当前用户:
whoami
记录输出结果。该用户名将作为 Windows SSH 登录 Linux 时的 User 字段。
4. Linux 端确认 IP 地址
在 Linux 终端中查看 IPv4 地址:
ip -4 addr
重点查看物理或虚拟网卡,例如:
eth0
ens33
ens160
enp3s0
记录非 127.0.0.1 的 IPv4 地址,格式通常类似:
inet 192.168.x.x/24
其中 192.168.x.x 即为后续 SSH 使用的 Linux 主机地址。
5. Linux 端确认 SSH 服务状态
检查 SSH 服务是否正在监听端口:
sudo ss -tlnp | grep sshd
如果看到类似结果:
0.0.0.0:22
[::]:22
说明 SSH 服务已经启动,并监听默认端口 22。
如果 SSH 服务未启动,执行:
sudo systemctl enable --now sshd
如果系统尚未安装 SSH 服务,需要根据发行版安装。
RHEL、CentOS、Fedora 系:
sudo dnf install -y openssh-server
sudo systemctl enable --now sshd
Ubuntu、Debian 系:
sudo apt install -y openssh-server
sudo systemctl enable --now ssh
6. Linux 端放行 SSH 防火墙
如果 Linux 启用了防火墙,需要确认 SSH 端口允许访问。
使用 firewalld 的系统执行:
sudo firewall-cmd --permanent --add-service=ssh
sudo firewall-cmd --reload
使用 ufw 的系统执行:
sudo ufw allow ssh
完成后,Linux 端应满足以下条件:
存在可访问的 IPv4 地址
SSH 服务已启动
SSH 端口已监听
防火墙允许 SSH 连接
7. Windows 端配置 SSH Host
在 Windows 用户目录下编辑 SSH 配置文件:
C:\Users\<Windows用户名>\.ssh\config

如果 .ssh 目录或 config 文件不存在,可以手动创建。
在文件中添加一个 Host 配置:
Host linux-remote
HostName <Linux主机IP>
User <Linux用户名>
Port 22
字段说明:
Host:Windows 本地使用的 SSH 别名,可自定义
HostName:Linux 主机 IP 地址
User:Linux 登录用户名
Port:SSH 服务端口,默认 22
示例结构:

配置完成后,Windows 端即可通过 Host 别名发起连接。
8. Windows 端测试密码登录
在 Windows PowerShell 中执行:
ssh linux-remote
首次连接时,OpenSSH 可能提示确认主机提示。确认目标 IP 无误后输入:
yes
随后输入 Linux 用户密码。
如果登录成功,终端提示符会切换到 Linux 用户环境。
退出远程 Linux 终端:
exit 或 Ctrl+D
此时说明 Windows 到 Linux 的基础 SSH 连接已经可用。
9. Windows 端配置 SSH Key 认证
为了让 PowerShell 和 Codex App 后续稳定连接 Linux,建议配置 SSH key 免密认证。
本文使用随机化密钥名称,避免与默认密钥或其他用途的密钥混用。示例密钥名如下:
codex_linux_vm_a7f3_ed255
codex_linux_vm_a7f3_ed255.pub
Windows 端示例密钥文件位置为:
C:\Users\<Windows用户名>\.ssh\codex_linux_vm_a7f3_ed255
C:\Users\<Windows用户名>\.ssh\codex_linux_vm_a7f3_ed255.pub
其中:
codex_linux_vm_a7f3_ed255:私钥,保存在 Windows 本地,不应泄露
codex_linux_vm_a7f3_ed255.pub:公钥,可写入 Linux 的 authorized_keys
如果没有现成密钥,可以在 PowerShell 中生成:
ssh-keygen -t ed25519 -f "$env:USERPROFILE\.ssh\codex_linux_vm_a7f3_ed255"
生成后,在 SSH Host 中指定使用该密钥:
Host linux-remote
HostName <Linux主机IP>
User <Linux用户名>
Port 22
IdentityFile ~/.ssh/codex_linux_vm_a7f3_ed255
IdentitiesOnly yes
字段说明:
IdentityFile:指定 Windows 本地私钥路径
IdentitiesOnly yes:限制 SSH 只使用指定密钥,避免尝试过多无关密钥
10. 将 Windows 公钥写入 Linux
在 Windows PowerShell 中执行以下命令,将公钥追加到 Linux 用户的 ~/.ssh/authorized_keys:
Get-Content "$env:USERPROFILE\.ssh\codex_linux_vm_a7f3_ed25519.pub" | ssh linux-remote 'umask 077; mkdir -p ~/.ssh; touch ~/.ssh/authorized_keys; tmp=$(mktemp); cat > "$tmp"; grep -qxFf "$tmp" ~/.ssh/authorized_keys || cat "$tmp" >> ~/.ssh/authorized_keys; rm -f "$tmp"; chmod 700 ~/.ssh; chmod 600 ~/.ssh/authorized_keys'
该命令完成以下操作:
读取 Windows 本地公钥
通过 SSH 将公钥发送到 Linux
创建 Linux 用户的 ~/.ssh 目录
创建或更新 ~/.ssh/authorized_keys
避免重复写入同一公钥
设置 SSH 目录和文件权限
执行过程中需要输入一次 Linux 用户密码。
11. 验证 SSH Key 免密登录
在 Windows PowerShell 中再次执行:
ssh linux-remote
如果不再要求输入密码,说明 SSH key 认证已经配置成功。
也可以直接执行远程命令验证:
ssh linux-remote "whoami && hostname && pwd"
如果能够返回 Linux 用户名、主机名和当前目录,说明 Windows 已可以通过 SSH 远程控制 Linux。
示例
12. Linux 端确认 Codex CLI
在 Linux 端确认 Codex CLI 是否已安装并更新到最新版本可执行:
command -v codex
codex --version
sudo npm install -g @openai/codex@latest
如果能输出 Codex 路径和版本号,说明 Linux 环境中的 Codex CLI 可用。
如果通过 Windows 远程检查,也可以执行:
ssh linux-remote "command -v codex && codex --version"
13. Windows 端启用 Codex App 远程连接
在 Windows 用户目录下编辑 Codex App 配置文件:
C:\Users\<Windows用户名>\.codex\config.toml
添加或确认以下配置:
[features]
remote_control = true
remote_connections = true
示例
如果文件中已经存在 [features] 段,只需要在该段下添加或确认上述两项配置,不需要重复创建多个 [features] 段。
保存后,需要彻底退出 Codex App 并重新启动。仅关闭窗口可能不会完全退出,需要确认系统托盘中的 Codex App 也已退出。
14. Codex App 中启用远程主机
重启 Codex App 后,进入连接管理页面:
Settings / Connections
确认前面配置的 SSH Host 已出现在连接列表中,例如:

如果未自动出现,可以在连接页面中手动添加 SSH 远程连接,并选择或填写对应的 SSH Host。
连接启用后,Codex App 即可通过该 SSH Host 访问 Linux 环境。
15. 在 Codex App 中打开远程工作区
在 Codex App 中选择远程连接后,打开 Linux 端的工作目录,例如:
/home/<Linux用户名>/codex-workspace
进入该远程工作区后,Codex 的文件读取、文件修改、命令执行和工具调用会发生在 Linux 环境中。
如果打开的是 Windows 本地目录,例如:
C:\Users\<Windows用户名>\project
则 Codex 的操作发生在 Windows 环境中。
16. 判断当前 Codex 会话执行环境
可以在 Codex 会话中执行:
pwd
whoami
uname -a
如果输出包含 Linux 路径、Linux 用户和 Linux 内核信息,说明当前 Codex 会话运行在远程 Linux 环境中。
如果输出为 Windows 路径或 PowerShell 相关信息,说明当前 Codex 会话运行在 Windows 本地环境中。
17. 最终可用能力
完成上述配置后,Windows 端具备以下能力:
PowerShell 通过 ssh linux-remote 登录 Linux
PowerShell 通过 ssh linux-remote "<命令>" 执行远程 Linux 命令
Codex App 识别 SSH 远程主机
Codex App 打开远程 Linux 工作区
Codex App 在 Linux 环境中执行命令和操作文件
常用命令示例:
ssh linux-remote
ssh linux-remote "pwd && whoami && codex --version"
更多推荐

所有评论(0)