Do you want to do remote development on your WSL2 container in Visual Studio Code? Read this.
- On the host set up OpenSSH for Windows
- Run
wsl --updateto make sure you are running the latest WSL - Open WSL and install another SSH server inside WSL with
sudo apt-get install openssh-server - Now run
sudo systemctl enable --now sshto automatically start ssh when WSL starts. - On the remote machine run
ssh -J windows_user@windows_ip wsl_user@localhostto see if the proxy jump will work
If you see the bash prompt it works. You can add it to the ~/.ssh/config file on the remote machine.
Host remote-wsl
HostName localhost
User wsl_user
ProxyJump windows_user@windows_ip
StrictHostKeyChecking no
Now connect with ssh remote-wsl.
SSH to your Windows host (SSH Server must be installed in Windows Features)
ssh user@windowshostStart Powershell
powershellRun this command to switch SSH from CMD to WSL
New-ItemProperty -Path "HKLM:\SOFTWARE\OpenSSH" -Name DefaultShell -Value "C:\WINDOWS\System32\bash.exe" -PropertyType String -Forcessh user@windowshostYou should now see WSL2 instead of CMD
At this point you can connect to your Win10 host with Remote SSH in VSCode with your Windows username and pw. But you'll actually start and connect to WSL2.
- Install the Remote - SSH extension
- Add a new SSH target and connect with your Windows host, username and password (you will automatically log in as the Linux user)
The workaround was inspired by: https://www.hanselman.com/blog/the-easy-way-how-to-ssh-into-bash-and-wsl2-on-windows-10-from-an-external-machine

Latest WSL2 has systemctl support and can automatically map sshd's connection to the Windows host. No need to redirect port.
wsl --updateto make sure use latest WSL.sudo apt-get install openssh-serverto install ssh andsudo systemctl enable --now sshto automatically start ssh when WSL starts.ssh -J windows_user@windows_ip wsl_user@localhostto login to ssh.ssh/configwslremote in VSCode πππ