If the remote folder and the contents exist, first you can run.syncdown so that you will get the remote contents in your local folder. After editing you local folder, you can synchronize your local folder to remote folder in up direction using.syncup command. Note: Symbolic links are not officially supported. This article provides directions as a reference, but due to the complexity of setting it up (not supported on all operating systems), we are. Remote Development using SSH The Visual Studio Code Remote - SSH extension allows you to open a remote folder on any remote machine, virtual machine, or container with a running SSH server and take full advantage of VS Code's feature set. Once connected to a server, you can interact with files and folders anywhere on the remote filesystem.
Virtual machines are convenient for developing in, but not many peoplewant to edit files using a plain terminal-based editor over SSH. Vagrant automatically syncs files to and from the guest machine. This way you can edit files locally and run them in your virtual development environment.
By default, Vagrant shares your project directory (the one containing the Vagrantfile) to the
/vagrant
directory in your guest machine.Create and configure a guest machine, as specified by your Vagrantfile.
SSH into your virtual machine to see the synched file.
»Explore the synced folder
On the virtual machine, list the files in the vagrant directory.
Tip: When you
vagrant ssh
into your machine, you're in /home/vagrant
, which is a different directory from the synced /vagrant
directory.Believe it or not, the Vagrantfile that you see inside the virtual machineis actually the same Vagrantfile that is on your actual host machine.
If your terminal displays an error about incompatible guest additions (or noguest additions), you may need to update your box or choose a different one. Some users have also had success with thevagrant-vbguest plugin, but itis not officially supported by the Vagrant core team.
»Test the synced folder
Bronny james twitch. To see the files sync between the guest machine and yours add a new folder in your virtual machine's vagrant directory.
End your SSH session.
List the contents of your local vagrant directory, and notice that the new directoryyou created on your virtual machine is reflected there.
The folder 'foo' is now on your host machine; Vagrant kept the folders in sync.
»Next Steps
With synced folders, you can continueto use your own editor on your host machine and have the files syncinto the guest machine.
You have successfully interacted with your host machine via synced folders onthe guest machine. In the next tutorial, learn about installing packages, users, and morewith provisioning.
This extension allows mounting remote folders as local workspace folders, launch integrated remote terminals and run
ssh-shell
tasks.Features
Config editor
The built-in config editor makes it easy to create and edit configurations:
The config editors stores this, by default, in your User Settings (
settings.json
) as:This config is configured to copy settings (e.g. username, host, ..) from my PuTTY session. Due to me having loaded my private key in Pageant (PuTTY's agent), this config allows me to create a connection without having to provide a password/passphrase. It also specifies that all file operations (
ssh://hetzner/some/file.js
) are relative to the /root
directory on the server.Ssh Sync Files
Configurations are read from your global User Settings, the current workspace's settings, and any JSON files configured with
sshfs.configpaths
. Even when the workspace overrides this setting, the globally-configured paths will still be read. The workspace versions do have higher priority for merging or ignoring duplicates.Terminals
Using a simple button or the command palette, a remote terminal can be started:
Uses
$SHELL
by default to launch your default user shell. A config option exists to change this, e.g. 'ksh -'
or 'exec .special-profile; $SHELL'
If a connection is already opened for a configuration, there is no need to reauthenticate. As long as the configuration hasn't changed, existing connections (both for workspace folders and terminals) will be reused.
Remote shell tasks
A new task type
ssh-shell
is added to run shell commands remotely:The task terminal opens a full PTY terminal on the server.
Remote workspace folders
Using a simple button or the command palette, we can mount a remote workspace folder as a regular local workspace folder:
Same configuration used as from the Config editor above.
This works seamlessly with extensions using the
vscode.workspace.fs
API (added in VS Code 1.37.0), although not all extensions switched over, especially ones making use of binary files.As can be seen, right-clicking a remote directory gives the option to instantly open a remote terminal in this directory.
The extension supports any
ssh://
URI. I actually opened ssh://hetzner/ng-ui
as my folder, which resolves to /root/ng-ui
on my remote server. By default, the button/command opens ssh://hetzner/
which would then mount /root
, as that is what my Root
config field is set to. You can set it to whatever, including ~/path
.Miscellaneous
The extension comes with a bunch of other improvements/features. Internally the ssh2 package is used. The raw config JSON objects (as seen in Config editor) is, apart from some special fields, a one-on-one mapping of the config options supported by this package. Power users can edit their
settings.json
to e.g. make use of the algorithms.cipher
field to specify a list of ciphers to use.Ssh Sync Folder Download
Some other features worth mentioning:
Prompt host/username/password/.. for every connection
Active connections are reused to minimize prompts. A connection gets closed if there's no terminal or file system using it for over 5 seconds.
Proxy settings
![Ssh Sync Folder Ssh Sync Folder](/uploads/1/3/7/2/137226593/965088747.jpg)
Several proxy types (SSH hopping, HTTP and SOCKS 4/5) are supported:
SSH Hop
refers to using another configuration to hop through, similar to OpenSSH's ProxyJump
:SFTP Command/Sudo and Terminal command
The extension supports using a custom
sftp
subsystem command. By default, it uses the sftp
subsystem as indicated by the remote SSH server. In reality, this usually results in /usr/lib/openssh/sftp-server
being used.The
SFTP Command
setting allows specifying to use a certain command instead of the default subsystem. The SFTP Sudo
setting makes the extension try to create a sudo shell (for the given user, or whatever sudo defaults to) and run SFTP Command
(or /usr/lib/openssh/sftp-server
by default). For most users, setting this to <Default>
should allow operating on the remote file system as root
. Power users with esoteric setups can resort to changing SFTP Command
to e.g. sudo /some-sftp-server
, but might run into trouble with password prompts.The
Terminal command
option, as mentioned in Terminals, allows overriding the command used to launch the remote shell. By default, the extension launches a remote shell over the SSH connection, runs cd ..
if necessary, followed by $SHELL
to start the user's default shell. This config option allows to replace this $SHELL
with a custom way way of starting the shell, or configuring the provided default SSH shell.Ssh Sync Folder
Links
Pycharm Ssh Interpreter Sync Folders
- GitHub (Issues | (Pre)-releases | Roadmap | Sponsor)