Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/horlogeskynet/sshubl
:technologist: A Sublime Text 4+ plugin for your SSH connections
https://github.com/horlogeskynet/sshubl
openssh package-control port-forwarding remote-ssh ssh sshfs sublime-text sublime-text-4 sublime-text-plugin
Last synced: 8 days ago
JSON representation
:technologist: A Sublime Text 4+ plugin for your SSH connections
- Host: GitHub
- URL: https://github.com/horlogeskynet/sshubl
- Owner: HorlogeSkynet
- License: gpl-3.0
- Created: 2024-07-06T19:15:18.000Z (4 months ago)
- Default Branch: master
- Last Pushed: 2024-10-28T08:54:26.000Z (9 days ago)
- Last Synced: 2024-10-28T11:00:20.302Z (9 days ago)
- Topics: openssh, package-control, port-forwarding, remote-ssh, ssh, sshfs, sublime-text, sublime-text-4, sublime-text-plugin
- Language: Python
- Homepage: https://packagecontrol.io/packages/SSHubl
- Size: 108 KB
- Stars: 3
- Watchers: 3
- Forks: 0
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
README
# SSHubl
> A Sublime Text 4+ plugin for your SSH connections
## Introduction
This plugin aims to grant the power of (Open)SSH to Sublime Text. Included features are :
* Open a remote terminal
* Open a remote folder over sshfs
* Open forward and reverse ports (or UNIX domain sockets)
* Automatic environment re-setup on [project](https://www.sublimetext.com/docs/projects.html) openingIt has been inspired by Visual Studio Code [Remote - SSH](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-ssh) plugin, **without** the drawback of depending on a remote agent running on the SSH server.
## Dependencies
* Sublime Text 4081+
* OpenSSH client
* sshfs (FUSE) client
* pexpect (Python package)
* [Terminus](https://packagecontrol.io/packages/Terminus) (Sublime Text package, for remote terminal feature)On Debian : `apt-get install -y sshfs`
## Installation
### With Package Control (recommended)
1. Open your command palette and type in : `Package Control: Install Package`
2. Browse the list or search for `SSHubl`
3. Press `Enter` and you're done !Package Control dedicated page [here](https://packagecontrol.io/packages/SSHubl).
### Manually
1. Go to the Sublime Text packages folder (usually `$HOME/.config/sublime-text/Packages/` or `%AppData%\Sublime Text\Packages\`)
2. Clone this repository there : `git clone https://github.com/HorlogeSkynet/SSHubl.git`
3. Satisfy `pexpect` and `ptyprocess` third-party dependencies in Sublime Text `Lib/python38/` folder (see [here](https://stackoverflow.com/a/61200528) for further information)
4. Restart Sublime Text and... :tada:## Usage
Open your command palette and type in `SSHubl` to select `Connect to server`. Once connected, you will be able to select `Forward port/socket`, `Open/Select directory (mount sshfs)` or even `Open a terminal` commands.
![Preview](https://i.imgur.com/i5uPoWD.gif)
## Settings
```javascript
{
"debug": false,
// Custom path to OpenSSH client program
// /!\ This setting requires plugin reload (or Sublime restart)
"ssh_path": null,
// Custom path to `sshfs` FUSE client program
// /!\ This setting requires plugin reload (or Sublime restart)
"sshfs_path": null,
// Custom path to `umount` program (`fusermount` on Linux)
// /!\ This setting requires plugin reload (or Sublime restart)
"umount_path": null,
// Custom options to pass to OpenSSH **master** (e.g. useful for bastion traversal)
"ssh_options": {
//"ConnectTimeout": 30,
},
// Custom login timeout (for pexpect)
"ssh_login_timeout": 10,
// Set to `false` to disable host authentication for loopback addresses (cf. NoHostAuthenticationForLocalhost)
"ssh_host_authentication_for_localhost": true,
// Server keepalive interval (as recommended in sshfs documentation)
"ssh_server_alive_interval": 15,
}
```## Frequently Asked Questions
### Why can I connect to new hosts without accepting their fingerprint ?
> `pexpect` package is [known to always accept remotes' public key](https://github.com/pexpect/pexpect/blob/4.9/pexpect/pxssh.py#L411-L414), and it isn't configurable.
### How is "SSHubl" pronounced ?
> \[ʃʌbəl\]
### Why haven't you opted for a pure Python approach ?
> Paramiko doesn't support FUSE. There is also `fs.sshfs`, but it relies on PyFilesystem 2 which doesn't support "re-exposing" FUSE as local mount point.
### Is SSHubl compatible with other SSH clients ?
> As it uses OpenSSH connections multiplexing feature, no.
### Do you plan to support Sublime Text 3 ?
> It's very unlikely as SSHubl requires Python 3.8 runtime and depends on several Sublime Text 4081+ API.