1
0
mirror of https://github.com/HorlogeSkynet/SSHubl.git synced 2024-11-21 08:00:09 +01:00
🧑‍💻 [MIRROR] A Sublime Text 4+ plugin for your SSH connections https://github.com/HorlogeSkynet/SSHubl
Go to file
2024-11-04 22:57:58 +01:00
.github Create dependabot.yml 2024-07-07 17:27:39 +00:00
sshubl Fixes UNIX domain socket removal against Windows remote 2024-11-04 22:57:58 +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 UNIX domain socket removal against Windows remote 2024-11-04 22:57:58 +01:00
Default.sublime-commands Implements interactive connection command (through Terminus) 2024-11-04 22:57:40 +01:00
dependencies.json Implements interactive connection command (through Terminus) 2024-11-04 22:57:40 +01:00
LICENSE Initial commit 2024-07-06 21:15:28 +02:00
main.py Implements interactive connection command (through Terminus) 2024-11-04 22:57:40 +01:00
Main.sublime-menu Implements interactive connection command (through Terminus) 2024-11-04 22:57:40 +01:00
pyproject.toml Vendors mslex v1.3.0 package source (licensed under Apache 2.0) 2024-11-04 22:50:03 +01:00
README.md Implements interactive connection command (through Terminus) 2024-11-04 22:57:40 +01:00
requirements-dev.txt Update ruff requirement from ~=0.7.1 to ~=0.7.2 2024-11-04 07:13:48 +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 (used for non-interactive SSH connection on Linux/macOS)
  • Terminus Sublime Text package (used for remote terminal feature on Linux/macOS, required on Windows)

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. [Linux/macOS] Satisfy either pexpect and ptyprocess third-party dependencies in Sublime Text Lib/python38/ folder (see here for further information) or Terminus Sublime Text package dependency
  4. [Windows] Satisfy Terminus Sublime Text package dependency
  5. 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 non-interactively 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.