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"
Logo

欢迎加入DeepSeek 技术社区。在这里,你可以找到志同道合的朋友,共同探索AI技术的奥秘。

更多推荐