In this very short post we’ll take a look at how to properly set up your environment to allow you working with your local IDE to a remote server.
Since you’re logging through an identity file — because you’re not logging in with a password now, are you? — we need to bind a specified host to a user and identity file, also known as OpenSSH private key. To do so we modify or create
%UserProfile%\.ssh\config on Windows. The file structure is pretty simple:
Host <ip/hostname> User <username> IdentityFile <PEM file path>
With that information saved, we can simply
ssh <ip/hostname> to remote in, without specifying anything.
The next problem in our automation process is to store the passphrase for the session, to avoid manual prompts each time we start a remote instance of VSCode. In order to do this we need to ensure that
ssh-agent is running properly. On Windows it’s enough to make sure that the “OpenSSH Authentication Agent” service is running, while on Linux it depends on the distro. Generally, we can make sure that it’s running by issuing
ps x | grep ssh-[a]gent, and running
ssh-agent once if it’s not.
Now we can simply
ssh-add <PEM file path>, insert our passphrase, and ssh with reckless abandon.
Visual Studio Code
The majority of the work has now been done, we can simply install the Remote Development extension, and to remote in we select “Remote SSH: Connect to Host…” from the command palette, or press on the little green area in the bottom left part of the status bar.
From there we just “Open folder” and navigate the remote server directory structure, open where we want and code at leisure.