概要
Cursorから遠隔でWindowsPCのWSLの中にあるフォルダにアクセスしたい。
VScodeとやり方はほぼ一緒のはずだが、何ヶ月か前は試しても出来なかったので、リベンジした
ちなみに普通に遠隔で操作すると、大学のネットワークに弾かれているのでtailscaleを使ってVPN接続している。多分SSH接続なのでtailscaleを使わなくてもいけそう。
環境
操作する側: Mac M2, macOS Sequoia Version 15.4.1
遠隔操作される側: Windows11, wsl2
全体構成
Mac (Cursor) ──SSH:2222──► Windows (Tailscale IP <TAILSCALE_IP>)
│
└─portproxy 2222 ► WSL:22
WSL (Ubuntu 等) 側セットアップ
# WSL 内で
sudo apt update
sudo apt install -y openssh-server
# systemd 有効化
echo -e "[boot]\nsystemd=true" | sudo tee /etc/wsl.conf
wsl --shutdown # Windows PowerShell で
# sshd 自動起動
sudo systemctl enable --now ssh
/etc/ssh/sshd_config
で最低限以下を確認・変更し、sudo systemctl restart ssh
。
Port 22
ListenAddress 0.0.0.0
PasswordAuthentication no # 公開鍵のみ推奨
Windows ホスト側 (管理者 PowerShell)(再起動で IP が変わったら再実行)
WSL IP を取得
$wslIp = (wsl hostname -I).Split()[0]
portproxy を張る
netsh interface portproxy reset
netsh interface portproxy add v4tov4 `
listenaddress=0.0.0.0 listenport=2222 `
connectaddress=$wslIp connectport=22
ファイアウォールで 2222/TCP を許可
netsh advfirewall firewall add rule name="WSL SSH 2222" `
dir=in action=allow protocol=TCP localport=2222 `
profile=domain,private,public
2 行目のスクリプトをタスクスケジューラの「ログオン時」に登録すると、WSL IP が変わっても自動更新されるらしい。
Mac 側
SSH 鍵を用意 & WSL へ登録
ssh-keygen -t ed25519 -C "wsl-tail"
ssh-copy-id -p 2222 <WSL_USER>@<TAILSCALE_IP> # 初回のみパスワード入力
~/.ssh/config
Host wsl-tailscale
HostName <TAILSCALE_IP> # 100.x.x.x
User <WSL_USER>
Port 2222
IdentityFile ~/.ssh/id_ed25519
ServerAliveInterval 30
接続確認
ssh wsl-tailscale # パスワード無しでログインできれば OK
Cursor から Remote-SSH
- ⌘⇧P → Remote-SSH: Connect to Host…
-
wsl-tailscale
を選択 → “Linux” プラットフォームを選ぶ - ステータスバーが
>< SSH: wsl-tailscale
になれば成功 - 好きなフォルダ (例
/home/<WSL_USER>/project
) を開いて開発開始
Tailscale ACL 例 (必要に応じて)
{
"ACLs": [
{
"Action": "accept",
"Users": ["*"],
"Ports": [
"<TAILSCALE_IP>:2222"
]
}
]
}
管理画面で Save & Apply すると数秒で反映。
トラブルシューティング速攻メモ
症状 確認ポイント
・ssh: connect … timed out
→ ① IP/ポート誤り ② portproxy 未設定 ③ FW or ACL
・Permission denied
鍵未登録ssh-copy-id
、authorized_keys
権限 600
・Cursor で接続候補が出ない → ~/.ssh/config
の保存場所&ファイル名
・windows側でcursorを開いていない
以上で Mac → Tailscale → Windows → WSL2 の開発環境が完成しました。