1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

VSCode Remote SSHでwindowsを踏み台にしてWSLに接続する方法

1
Posted at

はじめに

Windows + WSL 環境で開発していると、

  • ノートPCからデスクトップPCのWSL環境に接続したい
  • VSCode Remote SSHでWSLのコードを編集したい

というケースがあります。

しかし WSL2はネットワーク構造上、外部PCから直接SSH接続することが難しいです。

WSL2は以下のような構造になっています。

ノートPC
   │
   │ SSH
   │
Windows
   │
   │ 仮想ネットワーク
   │
WSL

WSLのIP(172.x.x.x)はWindows内部ネットワークのため、

通常は Windowsを踏み台(SSHゲートウェイ)にしてWSLへ接続する必要があります。

この記事では

  • Windowsを踏み台にしてWSLにSSH接続する方法
  • VSCode Remote SSHでWSL開発環境を作る方法

をまとめます。


前提条件

この記事では以下を前提とします。

  • 接続先の WindowsデスクトップPCでSSHサーバーが有効化されている
  • WSL(Ubuntuなど)がインストールされている

環境例

例として以下のような構成を想定します。

ノートPC
Mac / Windows / Linux

デスクトップPC
Windows 11

WSL
Ubuntu

IP構成の例

Windows: 192.000.00.01
WSL:     172.00.000.01

WindowsへSSH接続

まずWindowsにSSH接続できることを確認します。

ssh User@192.000.00.01

WindowsにログインできればOKです。


WSLへSSH接続

WSL側にSSHサーバーをインストールします。

sudo apt update
sudo apt install openssh-server

SSHサーバーを起動します。

sudo service ssh start

WSLのIPアドレスを確認します。

ip a

172.00.000.01

通常の接続方法(踏み台)

WSLに接続する場合、通常は以下のように 2段階SSH になります。

ssh User@192.000.00.01
ssh User@172.00.000.01

ただし、この方法は少し手間がかかります。


ProxyJumpを使った接続

SSH configを利用すると 1コマンドでWSLへ接続できます。

SSH設定ファイル

~/.ssh/config

以下を追加します。

Host windows
  HostName 192.000.00.01
  User User

Host wsl
  HostName 172.00.000.01
  User User
  ProxyJump windows

これで以下のコマンドだけで接続できます。

ssh wsl

内部では以下のように接続されています。

ノートPC
   │
   │ ssh
   │
Windows
   │
   │ ProxyJump
   │
WSL

VSCode Remote SSH

VSCodeに以下の拡張をインストールします。

Remote - SSH

接続手順

Ctrl + Shift + P
Remote-SSH: Connect to Host
wsl

接続後、WSLのフォルダを開きます。

/home/User

これで WSL環境上で直接開発が可能になります。


最終的な開発構成

最終的な構成は以下のようになります。

ノートPC
   │
   │ VSCode Remote SSH
   │
Windows
   │
   │ ProxyJump
   │
WSL
   │
   ├ node
   ├ git
   └ 開発環境

これにより

  • ノートPCからWSL開発
  • Linux環境でコード実行
  • VSCodeの補完やGit機能利用

が可能になります。


まとめ

WSL2は直接SSH接続が難しい場合がありますが、

Windowsを踏み台(SSHゲートウェイ)として利用することで
快適な開発環境を構築できます。

SSH config + ProxyJump を使うことで

接続もシンプルになります。


この記事を書いた背景

後書きで置いときます

OpenClawの開発を行う中で、

常にツールや機能の改修・追加を行える環境を作りたいと考えました。

そこで、デスクトップPCを OpenClawの実行環境(サーバー)として常時稼働させ、

ノートPCからSSH経由で接続して開発できるような構成を構築しました。

この構成にすることで、

  • OpenClawを複数台常時起動した状態で運用できる
  • ノートPCからいつでも開発・改修ができる
  • 実行環境と開発環境を分離できる

といったメリットがあります。

また、常時稼働させるマシンとしては Mac miniを使うケースも多いですが、

コストパフォーマンスを考えると 同等スペックであればWindows PCの方が安価な場合が多いため、

今回は Windows + WSL 環境で構築しました。

その結果、

WindowsをSSHゲートウェイとしてWSLに接続する構成になったため、

同様の環境を構築したい方の参考になればと思い、この記事をまとめました。

※本記事では家庭LAN内での利用を想定していますが、 同様の構成は踏み台サーバー(Bastion Host)を用いたインフラ構成にも応用できます。

1
0
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
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?