1
0
mirror of https://github.com/HorlogeSkynet/SSHubl.git synced 2024-07-21 16:00:16 +02:00
🧑‍💻 [MIRROR] A Sublime Text 4+ plugin for your SSH connections https://github.com/HorlogeSkynet/SSHubl
Go to file
d3vyce 707fabadc5
Merge pull request #7 from HorlogeSkynet/dependabot/pip/ruff-approx-eq-0.5.2
Update ruff requirement from ~=0.5.1 to ~=0.5.2
2024-07-15 10:12:06 +02:00
.github Create dependabot.yml 2024-07-07 17:27:39 +00:00
sshubl Prevents pexpect from tweaking remote prompt shell 2024-07-14 16:30:51 +02:00
tests Initial commit 2024-07-06 21:15:28 +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 Bumps to v0.2.1 2024-07-14 16:32:56 +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 Initial commit 2024-07-06 21:15:28 +02:00
README.md Updates plugin preview 2024-07-13 18:56:01 +02:00
requirements-dev.txt Update ruff requirement from ~=0.5.1 to ~=0.5.2 2024-07-15 06:01:44 +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 sockets)
  • Automatic environment re-setup on project opening

It has been inspired by Visual Studio Code's Remote - SSH plugin, without the inconvenient 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

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.