You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
82 lines
3.6 KiB
82 lines
3.6 KiB
|
|
# SSH FS
|
|
|
|
This extension makes use of the new FileSystemProvider, added in version 1.23.0 of Visual Studio Code.
|
|
|
|
## Usage
|
|
Add SSH FS configs to "sshfs.configs" in your User Settings:
|
|
```js
|
|
{
|
|
"sshfs.configs": [
|
|
{
|
|
// Both display name and what results in ssh://serverlogs/
|
|
"name": "serverlogs",
|
|
// Remote folder to use as root (default is /)
|
|
"root": "/var/log",
|
|
// Host to connect to (domain / IPv4 / IPv6)
|
|
"host": "10.0.0.123",
|
|
// Port to connect to (default is 22)
|
|
"port": 22,
|
|
// Username to login with
|
|
"username": "root",
|
|
|
|
// Path to ssh-agent's UNIX socket
|
|
// or 'pageant' when using Pageant on Windows
|
|
"agent": "pageant"
|
|
|
|
// Instead of using an agent, we can also just use a password
|
|
"password": "CorrectHorseBatteryStaple"
|
|
|
|
// Or a private key (raw key, OpenSSH format)
|
|
"privateKey": "-----BEGIN OPENSSH PRIVATE KEY-----\nb3BlbnN...",
|
|
// Should the private key be encrypted
|
|
"passphrase": "CorrectHorseBatteryStaple"
|
|
}
|
|
],
|
|
}
|
|
```
|
|
*You could also put them in Workspace settings, it merges instead of overrides*
|
|
|
|
**The name has to be a certain format, creating a new configuration using the Command Pallet (or rightclicking the `SSH File Systems` view) is recommended.** Think of the name as an internet domain name, and you'll be more than fine.
|
|
|
|
Either rightclick to Connect or use the command panel
|
|
|
|
![Using the Command Panel](./media/screenshot-commandpanel.png)
|
|
|
|
This will add a Workspace folder linked to a SSH (SFTP) session:
|
|
|
|
![Workspace folder added](./media/screenshot-explorer.png)
|
|
|
|
## TO DO *(in order of most likely to implement first)*
|
|
* ~~Fix bug where saving a file resets the permissions (when owner/root at least)~~ **DONE**
|
|
* Fix bug where the Explorer shows a loading bar forever
|
|
* Fix bug where VSCode shows an error message about `no provider for ssh://NAME/`
|
|
* An icon for the extension
|
|
* Configuring a deleted (but active) configuration should show the old config
|
|
* Currently it'll open a new default configuration file for it
|
|
* Better error handling
|
|
* Everything *seems* fine, but I haven't tested (a lot of) error situations
|
|
* Handles wrong password/key/... properly
|
|
* Doesn't report when `root` is set to a non-existant directory
|
|
* Doesn't (always?) report errors related to lacking permissions
|
|
* Offer reconnecting if the User Settings change
|
|
* Currently this only refreshes the `SSH File Systems` view
|
|
* We do offer this when it's changed using Configure in the context menu
|
|
* Icons for the `SSH File Systems` view
|
|
* Icon for a configuration that isn't active
|
|
* Icon for a configuration that's active and connected
|
|
* Icon for a configuration that's active but disconnected
|
|
* Variant for the above two for deleted configurations
|
|
* Better authentication methods
|
|
* Currently (basically) everything is directly passed to [ssh2](https://www.npmjs.com/package/ssh2#client-methods)
|
|
* Add `promptForPasswordOrPassphrase` *(self-explanatory)*
|
|
* Add `privateKeyPath` *(or auto-detect `privateKey` as a path)*
|
|
* Prompt the user for a passworf if the server prompts
|
|
* This would be the `tryKeyboard` option for ssh2's Client.connect
|
|
* Would need to hook into the keyboard request and show a prompt
|
|
* Add an option to open a SSH terminal *(might as well)*
|
|
* Add an option to change the `root` folder (without reconnecting)
|
|
* Internally keep track of the original root folder (reset option)
|
|
* Allow to "move" the `root` folder up one directory or to `/`
|
|
* Add a context menu option for directories in the Explorer
|