0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Windows の Codex Desktop から SSH で WSL Ubuntu に接続する方法

0
Posted at

初めに

Windows 版の Codex Desktop を使っていると、実際の開発環境は WSL Ubuntu 側に置いている、というケースがあります。

単純に WSL のフォルダを \\wsl$ で開く方法もありますが、今回はもう一歩進めて、Codex Desktop から WSL Ubuntu を SSH ホストとして登録する方法をまとめます。

結論から言うと、流れは次の通りです。

  1. WSL Ubuntu 側で SSH サーバーを起動する
  2. Windows 側から ssh wsl-ubuntu で接続できるようにする
  3. WSL 側に Codex CLI をインストールする
  4. Codex Desktop の Connections から SSH ホストを追加する

前提

今回は次の環境を想定します。

  • Windows 11
  • WSL2
  • Ubuntu
  • Windows 版 Codex Desktop
  • Windows 側から WSL Ubuntu に SSH 接続したい

まず、Windows PowerShell で WSL のディストリビューション名を確認します。

wsl -l -v

例:

  NAME            STATE           VERSION
* Ubuntu          Running         2

この記事では、ディストリビューション名を Ubuntu として進めます。

WSL Ubuntu 側で SSH サーバーを入れる

まず WSL Ubuntu に入ります。

wsl -d Ubuntu

Ubuntu 側で OpenSSH Server をインストールします。

sudo apt update
sudo apt install -y openssh-server

WSL の中で SSH を使うだけなら、Windows 側の SSH とポートがぶつからないように、2222 番ポートを使うのが分かりやすいです。

sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
sudo vi /etc/ssh/sshd_config

次のように設定します。

Port 2222
PubkeyAuthentication yes
PasswordAuthentication no

設定したら SSH サーバーを再起動します。

sudo service ssh restart

systemd を有効にしている環境なら、こちらでも大丈夫です。

sudo systemctl enable --now ssh

Windows 側で SSH 鍵を作る

Windows PowerShell で SSH 鍵を作成します。

ssh-keygen -t ed25519 -f "$env:USERPROFILE\.ssh\id_ed25519"

公開鍵を WSL Ubuntu 側に登録します。

type "$env:USERPROFILE\.ssh\id_ed25519.pub" | wsl -d Ubuntu sh -c "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys"

Windows の SSH config に WSL を登録する

Windows 側の SSH config を編集します。

C:\Users\<Windowsユーザー名>\.ssh\config

次のように追加します。

Host wsl-ubuntu
  HostName 127.0.0.1
  Port 2222
  User <WSLのユーザー名>
  IdentityFile ~/.ssh/id_ed25519

ここで大事なのは、Host wsl-ubuntu のように明示的な Host 名を付けることです。

Codex Desktop は SSH config の Host を見て接続先を認識するため、ここを分かりやすい名前にしておくと後の設定が楽です。

SSH 接続できるか確認する

Windows PowerShell から接続してみます。

ssh wsl-ubuntu

WSL Ubuntu のシェルに入れれば OK です。

確認用に次のコマンドも実行しておくと分かりやすいです。

hostname
pwd
whoami

WSL Ubuntu 側に Codex CLI を入れる

Codex Desktop は SSH 先で Codex のリモート処理を起動します。

そのため、WSL Ubuntu 側でも codex コマンドが使える必要があります。

WSL Ubuntu 側で次を実行します。

curl -fsSL https://chatgpt.com/codex/install.sh | sh
codex

インストール後、Windows 側からも確認します。

ssh wsl-ubuntu "which codex"

パスが表示されれば OK です。

もし何も表示されない場合は、WSL 側の PATH に Codex のインストール先が入っていない可能性があります。

例:

echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc

Codex Desktop で SSH ホストを追加する

ここまでできたら、Codex Desktop 側で接続します。

  1. Codex Desktop を開く
  2. Settings を開く
  3. Connections を開く
  4. SSH connection を追加する
  5. wsl-ubuntu を選ぶ
  6. WSL Ubuntu 側のプロジェクトディレクトリを選ぶ

例えば、WSL 側に次のようなプロジェクトがある場合:

/home/ubuntu/code/my-app

Codex Desktop では SSH ホスト wsl-ubuntu の中のこのパスをプロジェクトとして開きます。

これで、Codex のコマンド実行、ファイル読み書き、編集作業は WSL Ubuntu 側で行われます。

よくあるハマりどころ

1. SSH サーバーが起動していない

WSL を再起動したあと、SSH サーバーが止まっていることがあります。

sudo service ssh status
sudo service ssh restart

まずはここを確認します。

2. Windows の 22 番ポートとぶつかる

Windows 側で OpenSSH Server を使っている場合、22 番ポートがすでに使われていることがあります。

そのため、WSL 側は 2222 にしておくと分かりやすいです。

Host wsl-ubuntu
  HostName 127.0.0.1
  Port 2222

3. ssh wsl-ubuntu は成功するが Codex から失敗する

この場合は、WSL 側で codex コマンドが login shell の PATH に入っていないことが多いです。

確認します。

ssh wsl-ubuntu "which codex"

何も返らない場合は、~/.bashrc~/.profile に PATH を追加します。

4. プロジェクトを /mnt/c/... に置いている

WSL で開発するなら、プロジェクトはできるだけ Linux 側のホーム配下に置く方が扱いやすいです。

おすすめ:

/home/<user>/code/my-app

避けたい例:

/mnt/c/Users/<user>/workspace/my-app

I/O や権限まわりで余計な問題が出にくくなります。

まとめ

Windows の Codex Desktop から WSL Ubuntu に SSH 接続する場合は、次の4点を押さえれば大丈夫です。

  • WSL Ubuntu 側で openssh-server を起動する
  • Windows 側の ~/.ssh/configHost wsl-ubuntu を追加する
  • Windows PowerShell から ssh wsl-ubuntu で接続確認する
  • WSL Ubuntu 側でも codex コマンドを使えるようにする

最終的な SSH config は、例えばこのようになります。

Host wsl-ubuntu
  HostName 127.0.0.1
  Port 2222
  User ubuntu
  IdentityFile ~/.ssh/id_ed25519

WSL に開発環境を寄せている場合、Codex Desktop から SSH で WSL Ubuntu に入れるようにしておくと、Windows 側の UI と Linux 側の開発環境をうまく分離できます。

参考

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?