Remote SSH Text Editor through Visual Studio Code

3 Minute(s) to read

This blog post will outline what is required in order to be able to remotely modify text files from a Visual Studio Code instance running from your workstation. It has made working on a remote file system significantly simpler, especially when having to modify configuration files on a remote system.



The following sections will cover what is required in order to setup both your Visual Studio Code instance, as well as your running Linux instance. Ensure that you have root or administrative privileges to your running Linux instance.

Visual Studio Code

Install the Remote VSCode extension for Visual Studio Code. This extension will enable launch a run-time during the launch of Visual Studio Code which will enable for text file editing over a listening SSH tunnel.

Configuring Remote VSCode Extension

Modify your user or workspace settings (whichever you prefer), and specify the following properties. This configuration file can be found in the .vscode directory of your workspace. Alternatively, you can modify your workspace settings by using CTRL + P and searching "workspace".

visualstudio code settings v2

This property will ensure that the required run-time for opening a connection with rmate will be running and listening when Visual Studio Code launches. This local run-time will enable for you to open remote files over a SSH connection, that will be configured and setup in the next section.

Configuring Linux server over SSH

Connect to your running Linux instance over SSH, and ensure that the user account user has sudo or elevated privileges. Next, you are going to want to download the latest version of the rmate script from the GitHub repository that it resides in.

The following set of commands will download the script at head revision from the GitHub repository to the correct location on your running Linux instance, and will modify it's file permission properties so that it can be executed anywhere by any account or group on your running instance of Linux.

sudo wget -O /usr/local/bin/rmate
sudo chmod a+x /usr/local/bin/rmate

Rmate should now be available to you anywhere you navigate to through the terminal, as the script has been stored under the /usr/local/bin/ directory.

Setting up PuTTY (Windows)

Ensure that you have PuTTY installed on your machine, and that you can successfully establish a SSH connection to your running Linux instance through the tool.


Testing connectivity

Once you have successfully configured your PuTTY instance, connect to your running Linux instance and navigate to the file that you wish to have opened in Visual Studio Code. Run a separate Visual Studio Code instance, and ensure that the SSH listener is running in the background.



To open a remote file from your terminal into a running Visual Studio Code instance on your machine, simply run the following command.

In this example, I am opening a configuration file for NGINX.

root@arcanenet-2:/etc/nginx# rmate nginx.conf