This is testing number 3.
Step 1: Install Remote-SSH Extension in VS Code
Launch VS Code -> click Extension icon in the left bar -> search Remote-SSH in search box -> install it:
Then you will see a little remote connection icon shown in the bottom-left of the Status Bar:
Step 2: Verify SSH Connection in PowerShell
Click the top left Terminal or the shortcut
ctrl+shift+` to open a PowerShell terminal in VS Code -> if it’s not PowerShell, change it from here:
Verify SSH connection by executing
ssh username@hostname in PowerShell. (It doesn’t matter if you run this in a conda env or not)
If you can successfully login to the remote server, you are ready for the next step.
💢 If you get the Corrupted MAC on input error as below:
✅You can try the following solution:
ssh -Q mac first. It will return a list of all available MAC cryptographic algorithms on your local system:
Then, choose one of them as you like and connect to the remote server again by adding the selected algorithm with
ssh -m hmac-md5-96 username@hostname
You many need to try several times until you find the algorithm which is supported by your remote Linux server.
Now, you should be able login to the remote server and ready for the next step.
Step 3: Enable the Remote Connection in VS Code
Click the left-bottom remote connection icon -> select Remote-SSH: Open Configuration File…
or you can directly open the ssh configuration file from your local home directory
Add your remote server information in configuration file in below format:
MACs [optional; if you have the MAC error in Step 2, add the available algorithm which you found to here]
In case you have multiple servers to connect, just keep the format and append them one by one.
At the end, you will get a config file like below: (We will come back to the IdentityFile in the next step)
Now, you should be able to connect to the remote server without MAC error.
Click the remote connection icon in the bottom-left -> select Remote-SSH: Connect to Host… -> you will see a list of remote servers maintained in your config file -> click your target server (you may need to enter your login password)
After the successful connection, you will be navigated to a new VS Code window and the remote host name is shown in the bottom-left:
Until here, you have successfully setup a workable remote development workspace via VS Code. But, not finish yet.
If you stop here, you will be asked to enter the login password every time when you issue a remote connection. And you also need to enter the password for the each single operation on that remote server via VS Code even just open a folder. This would be really annoying. On the other hand, password logins is not secure enough. It’s easy to use and understand for everyone, but this convenience somehow sacrifices the security level. Password can be easily broken by the brute-force attack.
Therefore, instead of entering password in VS Code, it’s better to use SSH public and private key pairs to do the authentication.
Step 4: Generate SSH Key Pairs
In VS Code Powershell terminal, execute the command:
During the key generation, it will prompt:
This allows you define a location to store the keys. Press ENTER to leave it as default.
This allows you enter and double confirm a password to protect your private key (when you type, it won’t display your password). After this, you need to enter this password when you use the private key in future. This is an extra protection. You can press ENTER to skip it.
After the creation, you will see a key’s random art image. And your key pairs are stored in the default hidden
To double check, you can review he key pairs in above location via:
You will see two new files
id_rsa which stores the private key and
id_rsa.pub which stores the public key. Run
cat [filename]to check the key content.
If everything is fine. Now, you can add the path of the private key
~/.ssh/id_rsain the ssh configuration file as Step 2 with name of IdentityFile:
Just keep in mind, one public key can be used multiple times and ❗ do NOT share your private key to anyone.
Step 5: Copy the Public Key to the Remote Server
Login to the remote server via VS Code or any other terminal with password. Check if you have the
authorized_keys file under
~/.ssh directory. If not, create one by following commands:
authorized_keys is the default file name defined by OpenSSH used to store the public keys. You can maintain multiple public keys in this file. Make sure that each key is on a single line and no line-breaks in the middle of the key.
Then maintain your public key (the content in your local
~/.ssh/id_rsa.pub file) in this remote file:
vim authorized_keys -> press
i to shift to INSERT mode -> paste your public key content here -> press
wq to write into and quit the file -> recheck it by
cat authorized_keys .
Now, your secure and convenient remote development workspace in VS Code is ready!
Just go back to your VS Code. Issue a new remote connection. Now, you should be able to connect to the remote server without the password and work on it just as you are locally. Have fun!