glibc
based Linux distributions for x86_64, ARMv7l (AArch32), and ARMv8l (AArch64) should work if they have the needed prerequisites. See the Remote Development with Linux article for information prerequisites and tips for getting community supported distributions up and running.user@hostname
as appropriate.user@hostname
as in step 1.remote.SSH.remotePlatform
property so you can change it at any time.Remote - SSH
output channel.Tip: Connection hanging or failing? See troubleshooting tips for information on resolving common problems.If you see errors about SSH file permissions, see the section on Fixing SSH file permission errors.
glibc
SSH hosts, some extensions may not work due to x86 compiled native code inside the extension.ssh
command you would use to connect to the host from the command line:'remote.SSH.configFile'
property in your User settings.json
file if you want to use a different config file than those listed. The extension takes care of the rest!ssh -i ~/.ssh/id_rsa-remote-ssh [email protected]
in the input box would generate this entry:remote.SSH.defaultExtensions
property in settings.json
. For example, if you wanted to install the GitLens and Resource Monitor extensions, specify their extension IDs as follows:settings.json
file.'ui'
instead of 'workspace'
will force the extension to run on the local UI/client side instead. Typically, this should only be used for testing unless otherwise noted in the extension's documentation since it can break extensions. See the article on Supporting Remote Development for details.http://localhost:4123
.'remote.restoreForwardedPorts': true
in settings.json
.LocalForward
directive in the same SSH config file you use to remember hosts and advanced settings.code
command line from this same terminal window to perform a number of operations such as opening a new file or folder on the remote host. Type code --help
to see all the options available from the command line.launch.json
and start debugging (F5), the application will start on remote host and attach the debugger to it..vscode/launch.json
.rsync
.git push
from the command line to work around the issue.HTTP_PROXY
or HTTPS_PROXY
environment variables with the appropriate proxy information)./bin/bash
), tar
, and either curl
or wget
installed and those utilities could be missing from certain stripped down distributions. Remote Development also requires kernel >= 3.10, glibc >=2.17, libstdc++ >= 3.4.18. Only glibc-based distributions are supported currently, so by extension Alpine Linux is not supported.update.code.visualstudio.com
vscode.blob.core.windows.net
*.vo.msecnd.net
(Azure CDN)remote.SSH.allowLocalServerDownload
, the extension will fall back to downloading VS Code Server locally and transferring it remotely once a connection is established.marketplace.visualstudio.com
*.vo.msecnd.net
(Azure CDN)*.gallerycdn.vsassets.io
(Azure CDN)download.microsoft.com
or download.visualstudio.microsoft.com
. Others (like Visual Studio Live Share) may have additional connectivity requirements. Consult the extension's documentation for details if you run into trouble.rsync
to get a copy of the files on your local machine. SSHFS mounts the remote filesystem is ideal for scenarios where you need to edit individual files or browse the source tree and requires no sync step to use. However, it is not ideal for using something like a source control tool that bulk manages files. In this case, the rsync
approach is better since you get a complete copy of the remote source code on your local machine. See Tips and Tricks for details./etc/ssh/sshd_config
file, to change how users can use SSH to log into the server from remote locations.We previously have used our local ~/.ssh/config
file to easily log into a server. Let's now see some SSH options on the remote server, to see how we can affect who can log in and how./etc/ssh/sshd_config
.Port
option to something other than 22:fideloper
:fideloper
to group sudo
, which allows that user to use 'sudo' commands:id_sshex.pub
(on our local computer) and paste it into the authorized_keys
file of the new 'fideloper' user on the remote server.~/.ssh/config
file to adjust user from 'root' to 'fideloper':sshd_config
file some more and lock down who can login and how further.sshd_config
and turn off the ability to login over SSH using password:sshd_config
and explicitly set which users can SSH into the server: