Skip to content

Instantly share code, notes, and snippets.

@zerkz
Forked from mattbell87/remote-wsl.md
Last active April 21, 2022 04:43
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save zerkz/aa6c74e66e612044b33a19ac3055235c to your computer and use it in GitHub Desktop.
Save zerkz/aa6c74e66e612044b33a19ac3055235c to your computer and use it in GitHub Desktop.
VSCode Remote: Connect to WSL2 from another machine

VSCode Remote: Connect to WSL2 from another machine

Do you want to do remote development on your WSL2 container in Visual Studio Code? Read this.

Setup OpenSSH Server on Windows Host

Installation Documentation - https://docs.microsoft.com/en-us/windows-server/administration/openssh/openssh_install_firstuse

Default allows password authenication, suggest turning it off and using Public Key auth.

See this for debugging help -- depending on the user you want to use it with, you might need to use a different authorized_keys file (there is one for admin and one for standard users) https://serverfault.com/questions/873064/public-key-authentication-windows-port-of-openssh

Change your OpenSSH shell

SSH to your Windows host

ssh user@windowshost

Start Powershell

powershell

Run 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 -Force

Test

ssh user@windowshost

You should now see WSL2 instead of CMD

Connect from VSCode

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.

  1. Install the Remote - SSH extension
  2. Add a new SSH target and connect with your Windows host, username and password (you will automatically log in as the Linux user)

Credit

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment