In my previous blog, the plugin used to be able to modify files in the WSL filesystem without corruption was allowing only 1 file to be modified and “seen” in VSCode.
I’m glad to say that I finally found another plugin that not only provides the same SSH support (avoiding files corruption as stated above) but also provides a more complete “dev experience”.
Before we start, there is 2 prerequisites for this solution to work:
- You should have a working OpenSSH server in your WSL environment.
There is quite a lot of help or guides in Internet, but so far the “full solution” that is working all the time for me is the answer of this post
- The VSCode console should be your WSL shell instead of Powershell (not mandatory, but more user friendly).
You can change your user-settings (CTRL+,) with the following line for Ubuntu flavour:“terminal.integrated.shell.windows”: “C:\\Users\\<Your Username>\\AppData\\Local\\Microsoft\\WindowsApps\\ubuntu.exe”
Here is a quick how-to for the setup:
- Install VSCode and/or VSCode-Insiders (used for my demo)
- Install the plugin “FTP-Simple”
- Open the command bar (CTRL+SHIFT+P) and search for ftp-simple: config
- Create a first basic configuration just to ensure everything is working fine
- Open the command bar (CTRL+SHIFT+P) and search for ftp-simple: Remote directory to Workspace
- Choose your connection according to the name you provided in step 4
- [Optional] If you didn’t insert the password, type the password to the WSL account
- Choose from where the initial path should be open
- The workspace should be now open with the files and directories from the path you provided in step 4
- Open the terminal in VSCode
- Try changing content from Code or directly from the Console
Last (random) comments
- This solution does not work with a separated terminal opened. The Workspace of VSCode keeps the SFTP connection alive, that’s what allow us to directly modify the files without having a new VSCode window being open
- Your initial directory is the new ‘/’. You can think of it as a ‘chroot’. This means that if you try to open a file that is ‘below’ your initial directory, it will not work
- Microsoft is working hard on bringing full interopability between WSL and Windows applications (filesystem included). So consider this post to be obsolete in the (near?) future.
- The SSH solution is not my idea and it’s just an adaptation of Microsoft own solution for C++ and WSL.
Happy coding in your brand new WSL-VSCode environment.