add: SSHubl project
	
		
			
	
		
	
	
		
	
		
			All checks were successful
		
		
	
	
		
			
				
	
				Build Blog Docker Image / build docker (push) Successful in 1m30s
				
			
		
		
	
	
				
					
				
			
		
			All checks were successful
		
		
	
	Build Blog Docker Image / build docker (push) Successful in 1m30s
				
			This commit is contained in:
		
							
								
								
									
										
											BIN
										
									
								
								content/projects/sshubl/featured.png
									
									LFS
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								content/projects/sshubl/featured.png
									
									LFS
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								content/projects/sshubl/featured.webp
									
									LFS
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								content/projects/sshubl/featured.webp
									
									LFS
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								content/projects/sshubl/img/image-1.gif
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								content/projects/sshubl/img/image-1.gif
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| 
		 After Width: | Height: | Size: 202 KiB  | 
							
								
								
									
										110
									
								
								content/projects/sshubl/index.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										110
									
								
								content/projects/sshubl/index.md
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,110 @@
 | 
			
		||||
---
 | 
			
		||||
title: "SSHubl"
 | 
			
		||||
date: 2024-07-06
 | 
			
		||||
slug: "sshubl"
 | 
			
		||||
showAuthor: false
 | 
			
		||||
showWordCount: false
 | 
			
		||||
showReadingTime: false
 | 
			
		||||
showRelatedContent: false
 | 
			
		||||
showPagination: false
 | 
			
		||||
tags: ["sublime", "package", "remote"]
 | 
			
		||||
---
 | 
			
		||||
 | 
			
		||||

 | 
			
		||||
{{< github repo="HorlogeSkynet/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](https://www.sublimetext.com/docs/projects.html) opening
 | 
			
		||||
 | 
			
		||||
It has been inspired by Visual Studio Code's [Remote - SSH](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.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](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.
 | 
			
		||||
 | 
			
		||||

 | 
			
		||||
 | 
			
		||||
## Settings
 | 
			
		||||
 | 
			
		||||
```javascript
 | 
			
		||||
{
 | 
			
		||||
	"debug": false,
 | 
			
		||||
	// Custom path to OpenSSH client program
 | 
			
		||||
	"ssh_path": null,
 | 
			
		||||
	// Custom path to `sshfs` FUSE client program
 | 
			
		||||
	"sshfs_path": null,
 | 
			
		||||
	// Custom path to `umount` program (`fusermount` on Linux)
 | 
			
		||||
	"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.8.0/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.
 | 
			
		||||
		Reference in New Issue
	
	Block a user