Update README.md and split the TODO list in its own file

pull/64/head
Kelvin Schoofs 7 years ago
parent ba9cb187a9
commit e92b5a2c13

@ -3,14 +3,18 @@
![Logo](./resources/Logo.png) ![Logo](./resources/Logo.png)
This extension makes use of the new FileSystemProvider, added in version 1.23.0 of Visual Studio Code. **| [GitHub](https://github.com/SchoofsKelvin/vscode-sshfs) | [Visual Studio Marketplace](https://marketplace.visualstudio.com/items?itemName=Kelvin.vscode-sshfs) |**
## Features
This extension makes use of the new FileSystemProvider, added in version 1.23.0 of Visual Studio Code. It allows "mounting" a remote folder over SSH as a local Workspace folder.
## Summary
* Use a remote directory (over SSH) as workspace folder * Use a remote directory (over SSH) as workspace folder
* Use agents, including Pageant for Windows * Use agents, including Pageant for Windows
* Get prompted for a password/passphrase (no plain text password in settings) * Get prompted for a password/passphrase (plain text password aren't required)
* Easily create configurations that mirror a PuTTY session * Easily create configurations that reference a PuTTY session/configuration
* Have multiple SSH workspace folders at once * Have multiple SSH (and regular) workspace folders at once
* Make use of SOCKS 4/5 proxies and connection hopping
## Note ## Note
There is a [bug in VSCode 1.23.0](https://github.com/Microsoft/vscode/issues/49258) related to configurations. This results in configurations that get added/removed to/from the global settings not showing up/disappearing until reload. There is a [bug in VSCode 1.23.0](https://github.com/Microsoft/vscode/issues/49258) related to configurations. This results in configurations that get added/removed to/from the global settings not showing up/disappearing until reload.
@ -23,7 +27,10 @@ Add SSH FS configs to "sshfs.configs" in your User Settings:
{ {
// With PuTTY, this can be a complete configuration (with / as root) // With PuTTY, this can be a complete configuration (with / as root)
"name": "quick-putty", "name": "quick-putty",
"putty": "My PuTTY session" "putty": "My PuTTY session",
// if "putty" is set to true, it'll use the "name" as session name
"putty": true // Would use the "quick-putty" PuTTY session
}, },
{ {
// Unique id, which results in ssh://serverlogs/ // Unique id, which results in ssh://serverlogs/
@ -62,38 +69,13 @@ Add SSH FS configs to "sshfs.configs" in your User Settings:
"passphrase": "CorrectHorseBatteryStaple", "passphrase": "CorrectHorseBatteryStaple",
// Same as with the password, we can let it prompt us // Same as with the password, we can let it prompt us
"passphrase": true "passphrase": true
},
{
// If you're on Windows and have PuTTY installed
"name": "media-server",
"root": "/data/media/",
// Either set this to a session name
"putty": "My media server",
// Or let it find one using the host (and username)
"putty": true,
// Can also be a session name, e.g. "My media server"
"host": "my.media.me",
// (Optional) Filter the session by username
// (This only works if host is NOT a name of a session)
"username": "media",
// If the session has an encrypted key
"passphrase": "CorrectHorseBatteryStaple"
// Note: If the session doesn't specify a username, but
// has "Use system username" enabled, it'll use process.env.USER
// Note: The "agent" option will be set to "pageant" if the
// session has "Attempt authentication using Pageant" set
} }
], ],
} }
``` ```
*You could also put them in Workspace settings, all entries get merged together in one array.* **See auto-complete while in the settings screen for the "full documentation" about all options**
*You could also put them in Workspace settings. All configurations from Global/Workspace/... settings get merged. Should configurations with the same name exist, the more "lower/specific" configuration gets chosen, e.g. Workspace over Global.*
There's an extensive JSON schema, so it'll say when you're missing a field. Mind that when you have to use e.g. either "host" or "putty", VSCode will only say "Missing host". Check your intellisense/autocomplete for all possible options. There's an extensive JSON schema, so it'll say when you're missing a field. Mind that when you have to use e.g. either "host" or "putty", VSCode will only say "Missing host". Check your intellisense/autocomplete for all possible options.
@ -107,50 +89,3 @@ This will add a Workspace folder linked to a SSH (SFTP) session:
![Workspace folder added](./media/screenshot-explorer.png) ![Workspace folder added](./media/screenshot-explorer.png)
## Links
- [GitHub](https://github.com/SchoofsKelvin/vscode-sshfs)
- [Visual Studio Marketplace](https://marketplace.visualstudio.com/items?itemName=Kelvin.vscode-sshfs)
## 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**
* ~~Allow loading PuTTY sessions when on windows~~ **DONE**
* Also have a command to directly use a PuTTY session (**TODO**)
* ~~Add proper JSON schema/validation for SSH FS configurations~~ **DONE**
* Fix bug where the Explorer shows a loading bar forever
* *Seems like I might've fixed this bug over time, but difficult to say*
* Fix bug where VSCode shows an error message about `no provider for ssh://NAME/`
* Allow loading (or automatically use) sessions from .ssh/config
* ~~An icon for the extension~~ **DONE** *(not the best, but eh)*
* ~~Configuring a deleted (but active) configuration should show the old config~~ **DONE**
* Add proxy support for SOCKS 4 and SOCKS 5 **EXPERIMENTAL**
* A quick test makes it seem like it works
* Need to check for (common) errors, configuration issues, ...
* Load proxy config from PuTTY session if given **DONE**
* Do more tests using (non-)PuTTY sessions, other (public?) proxies, ...
* Better error handling
* Everything *seems* fine, but I haven't tested (a lot of) error situations
* ~~Handle wrong password/key/... properly~~ **DONE**
* Maybe prompt for a password when one's needed but not configured? (**TODO**)
* 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~~ **DONE**
* ~~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)*~~ **DONE**
* Both `password` and `passphrase` can be set to `true` to prompt
* ~~Add `privateKeyPath`~~ **DONE**
* Prompt the user for a password 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

@ -0,0 +1,43 @@
* ~~Fix bug where saving a file resets the permissions (when owner/root at least)~~ **DONE**
* ~~Allow loading PuTTY sessions when on windows~~ **DONE**
* Also have a command to directly use a PuTTY session (**TODO**)
* ~~Add proper JSON schema/validation for SSH FS configurations~~ **DONE**
* Fix bug where the Explorer shows a loading bar forever
* *Seems like I might've fixed this bug over time, but difficult to say*
* Fix bug where VSCode shows an error message about `no provider for ssh://NAME/`
* Allow loading (or automatically use) sessions from .ssh/config
* ~~An icon for the extension~~ **DONE** *(not the best, but eh)*
* ~~Configuring a deleted (but active) configuration should show the old config~~ **DONE**
* Add proxy support for SOCKS 4 and SOCKS 5 **EXPERIMENTAL**
* A quick test makes it seem like it works
* Need to check for (common) errors, configuration issues, ...
* Load proxy config from PuTTY session if given **DONE**
* Do more tests using (non-)PuTTY sessions, other (public?) proxies, ...
* Better error handling
* Everything *seems* fine, but I haven't tested (a lot of) error situations
* ~~Handle wrong password/key/... properly~~ **DONE**
* Maybe prompt for a password when one's needed but not configured? (**TODO**)
* 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~~ **DONE**
* ~~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)*~~ **DONE**
* Both `password` and `passphrase` can be set to `true` to prompt
* ~~Add `privateKeyPath`~~ **DONE**
* Prompt the user for a password 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
Loading…
Cancel
Save