1
0
mirror of https://github.com/HorlogeSkynet/SSHubl.git synced 2024-11-20 20:00:12 +01:00
🧑‍💻 [MIRROR] A Sublime Text 4+ plugin for your SSH connections https://github.com/HorlogeSkynet/SSHubl
Go to file
dependabot[bot] 8de276ab16 Update ruff requirement from ~=0.7.3 to ~=0.7.4
Updates the requirements on [ruff](https://github.com/astral-sh/ruff) to permit the latest version.
- [Release notes](https://github.com/astral-sh/ruff/releases)
- [Changelog](https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md)
- [Commits](https://github.com/astral-sh/ruff/compare/0.7.3...0.7.4)

---
updated-dependencies:
- dependency-name: ruff
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-11-18 06:55:57 +00:00
.github Create dependabot.yml 2024-07-07 17:27:39 +00:00
sshubl Fixes a typo in pretty_forward_target docstring 2024-11-03 20:30:05 +01:00
tests Disables spellcheck in remote terminal view (Terminus v0.3.32+) 2024-09-02 19:18:32 +02:00
_logging.py Initial commit 2024-07-06 21:15:28 +02:00
.gitattributes Initial commit 2024-07-06 21:15:28 +02:00
.gitignore Initial commit 2024-07-06 21:15:28 +02:00
.python-version Initial commit 2024-07-06 21:15:28 +02:00
CHANGELOG.md Fixes default setting values (ssh_host_authentication_for_localhost) 2024-09-30 23:58:15 +02:00
Default.sublime-commands feat(commands): add edit_settings 2024-07-10 21:52:02 +00:00
dependencies.json Initial commit 2024-07-06 21:15:28 +02:00
LICENSE Initial commit 2024-07-06 21:15:28 +02:00
main.py Minor comment style improvements 2024-07-07 21:07:28 +02:00
Main.sublime-menu feat(commands): add edit_settings 2024-07-10 21:52:02 +00:00
pyproject.toml Disables spellcheck in remote terminal view (Terminus v0.3.32+) 2024-09-02 19:18:32 +02:00
README.md Updates code base according to pexpect v4.9 2024-10-09 20:39:31 +00:00
requirements-dev.txt Update ruff requirement from ~=0.7.3 to ~=0.7.4 2024-11-18 06:55:57 +00:00
SSHubl.sublime-settings Initial commit 2024-07-06 21:15:28 +02:00

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 opening

It has been inspired by Visual Studio Code 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 (Sublime Text package, for remote terminal feature)

On Debian : apt-get install -y sshfs

Installation

  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.

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 for further information)
  4. Restart Sublime Text and... 🎉

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

Settings

{
	"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, 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.