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のSSH沼を避ける:WSL経由でVS Code Remote-SSHを整える

0
Last updated at Posted at 2026-02-10

はじめに

リモートホスト上で作業する都合上、VS CodeからSSHで接続する必要が出ました。現在はWindows 11のWSL上のUbuntuで作業しているため、その環境からリモートホストへ接続したいと考えました。

本記事では、その設定手順をまとめます。(目安:5分)

前提

Windows 11 / WSL / Ubuntuの設定はすでに完了しており、Ubuntu上でWindows上にインストールしたVS Codeを起動できる状態にしておいてください。もし未設定であれば、以下を参照してください。
データサイエンティストの環境構築 2024編 (1) (Windows環境+WSL Ubuntu)

設定手順

1. Ubuntu SSH鍵生成

WSL Ubuntuへログインし、SSH鍵を生成しください。

> ssh-keygen 

2. WSL Ubuntu側のconfigファイルの作成

WSL Ubuntuの~/.sshのディレクトリに、configファイルを作成します。

Host <タグ名> # 接続先の名前
  HostName <xxx.xxx.com or 192.111.xx.xx> # 接続先の公開ホスト名またはIPアドレス
  User <Your username> # SSH接続用のユーザ名
  IdentityFile ~/.ssh/id_rsa # SSH鍵

作成後、権限を設定します。

> chmod 600 config

3. Windows側のconfigファイルの作成

Windows側には、WSL Ubuntuと別のSSL接続先がある場合
Windows上でもC:\Users<Username>.sshディレクトリで configファイルを編集します。同じHost IDとHostNameを設定します。(これで、接続時、VScodeからホストIDが見えます)

Host <タグ名>
  HostName <hostname or IP address to connect>

WSL UbuntuでのSSL接続しかない場合
一方、SSHはWSL Ubuntu側での接続のみで、configファイルを一つにしたい場合は、シンボリックリンクを作成します。Windowsで管理者権限のパワーシェルターミナルを立ち上げて、以下を実行してみてください。

# Windows側の.sshディレクトリへ移動
cd $env:USERPROFILE\.ssh

# WSL側のconfigを指すシンボリックリンクを作成
# (Ubuntuの部分は自分のディストリビューション名に合わせてください)
# (user名もUbuntu側のログイン名に変えてください)
cmd /c mklink config \\wsl.localhost\Ubuntu\home\<アカウント名>\.ssh\config

これで完了です。

4. VSCodeでRemote-SSHのインストール

WSL上のUbuntuからVS Codeを起動し、拡張機能 Remote - SSH をインストールしておいてください。
image.png

5. Windows側でssh.batファイルの作成

以下のディレクトリに移動し、ssh.batを作成してください。

C:\Users<アカウント名>\bin

image.png

cd C:\Users\<アカウント名>\bin
echo '' > ssh.bat

そして、ssh.bat に以下の1行を追加してください(メモ帳など、任意のエディタでOKです)。

C:\Windows\system32\wsl.exe ssh %*

接続

VSCodeから以下を選択します。(Connect to Host)

image.png

すると、config ファイルで設定した タグ名が表示されるはずです。

image.png

それを選択すると、以下のように接続が始まり、問題がなければ自動で完了します。

image.png

トラブルシューティング

接続でエラーになる場合は、以下を試してください。

PowerShellを起動し、まずは ssh.bat 経由で直接接続できるか確認します。パスワード入力が必要な場合がありますが、接続できるはずです。

C:\Users\<YourUser>\bin\ssh.bat <user>@<remote-host>

また、以下を実行して、configファイルを利用して、接続できるか確かめてください。

C:\Windows\system32\wsl.exe ssh <Tag ID> 

さらに、WSL上でUbuntuが複数動いている(サブシステムが2つ以上ある)場合は、config があるディストリビューションをデフォルトに設定してください。

wsl --list --verbose
wsl --setdefault <サブシステムの名前>

終わりに

いかがでしたでしょうか? 簡単な設定で便利な機能が使えると思います。

Happy Hacking!!!

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?