Using “Remote SSH” in VSCode on a target machine that only allows inbound SSH connections

When you connect to a host it executes a bash script that wgets or curls a tarball and extracts it in a directory in your home directory. Here’s an offline workaround.

  1. Attempt to connect, let it fail

  2. On server, get the commit id

    $ ls ~/.vscode-server/bin
  3. Download tarball replacing $COMMIT_ID with the the commit number from the previous step

For Stable Version$COMMIT_ID/server-linux-x64/stable

For Insider Version$COMMIT_ID/server-linux-x64/insider

  1. Move tarball to ~/.vscode-server/bin/$COMMIT_ID/vscode-server-linux-x64.tar.gz

  2. Extract tarball in this directory

    $ cd ~/.vscode-server/bin/$COMMIT_ID
    $ tar -xvzf vscode-server-linux-x64.tar.gz --strip-components 1
  3. Connect again

You’ll still need to install any extensions manually. There’s a download button next to all the extensions in the marketplace. Once you have the .vsix file you can install them through the GUI with the Install from VSIX option in the extensions manager.

This is kind of a pain and hopefully they improve this process, but if you have a network-based home directory, you only have to do this once.

Leave a Comment