12 unstable releases (3 breaking)
Uses new Rust 2024
| 0.14.0 | Mar 25, 2026 |
|---|---|
| 0.13.6 | Mar 23, 2026 |
| 0.12.2 | Mar 10, 2026 |
| 0.11.0 | Mar 3, 2026 |
#497 in Network programming
685KB
11K
SLoC
🍣 susshi
susshi is a modern, terminal-based SSH connection manager written in Rust. It helps you organize servers, handle complex access flows (jump hosts, Wallix bastions), and connect fast through a clean Catppuccin-powered TUI.
Table of Contents
- 🍣 susshi
Quick Start
Install and connect in less than 2 minutes.
# Linux x86_64
wget https://github.com/yatoub/susshi/releases/latest/download/susshi-linux-amd64
chmod +x susshi-linux-amd64
sudo mv susshi-linux-amd64 /usr/local/bin/susshi
If you run an older distro with an older glibc (for example Linux Mint 21.x / Ubuntu 22.04), use one of these alternatives:
# Linux x86_64 (legacy glibc-compatible)
wget https://github.com/yatoub/susshi/releases/latest/download/susshi-linux-amd64-glibc217
chmod +x susshi-linux-amd64-glibc217
sudo mv susshi-linux-amd64-glibc217 /usr/local/bin/susshi
# Linux x86_64 (musl fallback)
wget https://github.com/yatoub/susshi/releases/latest/download/susshi-linux-amd64-musl
chmod +x susshi-linux-amd64-musl
sudo mv susshi-linux-amd64-musl /usr/local/bin/susshi
Create ~/.susshi.yml:
defaults:
user: "ops-user"
theme: mocha
groups:
- name: "Production"
servers:
- name: "api-01"
host: "198.51.100.10"
mode: "direct"
Use either mode:
# Open the TUI
susshi
# Direct one-shot connection
susshi --direct ops-user@198.51.100.10
For a complete config example, see examples/full_config.yaml.
Why susshi
Core Features
- Hierarchical inventory: groups, environments, servers.
- Mode inheritance: defaults -> group -> environment -> server.
- Connection modes: direct, jump (single or multi-hop), wallix.
- Multi-file config with
includes:and recursive resolution. - Hot reload (
r) without restarting the app.
Productivity Features
- Search by name/host with live result counter.
- Tag filtering with
#tagtokens (AND semantics). - Favorite servers (
f) and favorites-only mode (F). - Recent-sort view (
H) by last used server. - Clipboard copy of generated SSH command (
y).
Advanced Features
- Quick diagnostics (
d) with system stats and filesystem checks. - Ad-hoc non-interactive SSH command runner (
x). - SSH tunnel manager (
T) with persistent user overrides. - SCP transfer form (
s) with live progress. - Wallix authorization auto-resolution with targeted fallback popup.
- Hooks (
pre_connect_hook,post_disconnect_hook). ~/.ssh/configimport and Ansible inventory export.- Variable interpolation with
_varsand built-in{{ index }}.
Installation
Pre-built binaries
# Linux x86_64
wget https://github.com/yatoub/susshi/releases/latest/download/susshi-linux-amd64
chmod +x susshi-linux-amd64
sudo mv susshi-linux-amd64 /usr/local/bin/susshi
# Linux x86_64 (legacy glibc-compatible)
wget https://github.com/yatoub/susshi/releases/latest/download/susshi-linux-amd64-glibc217
chmod +x susshi-linux-amd64-glibc217
sudo mv susshi-linux-amd64-glibc217 /usr/local/bin/susshi
# Linux x86_64 (musl fallback)
wget https://github.com/yatoub/susshi/releases/latest/download/susshi-linux-amd64-musl
chmod +x susshi-linux-amd64-musl
sudo mv susshi-linux-amd64-musl /usr/local/bin/susshi
# macOS Intel
wget https://github.com/yatoub/susshi/releases/latest/download/susshi-macos-amd64
# macOS Apple Silicon
wget https://github.com/yatoub/susshi/releases/latest/download/susshi-macos-arm64
Ubuntu / Debian (x86_64, ARM64)
Install from native DEB packages:
# x86_64
sudo apt-get update && sudo apt-get install -y openssh-client xclip
wget https://github.com/yatoub/susshi/releases/latest/download/susshi_*_amd64.deb
sudo dpkg -i susshi_*_amd64.deb
# ARM64
wget https://github.com/yatoub/susshi/releases/latest/download/susshi_*_arm64.deb
sudo dpkg -i susshi_*_arm64.deb
Fedora / RHEL (x86_64)
Install from native RPM packages:
sudo dnf install openssh-clients
wget https://github.com/yatoub/susshi/releases/latest/download/susshi-*.x86_64.rpm
sudo dnf install ./susshi-*.x86_64.rpm
AUR (Arch Linux)
paru -S susshi-bin # pre-compiled binary
paru -S susshi # build from source
Build from source
Requires Rust & Cargo and a truecolor terminal.
git clone https://github.com/yatoub/susshi.git
cd susshi
cargo build --release
sudo cp target/release/susshi /usr/local/bin/
Configuration
susshi reads ~/.susshi.yml by default.
Minimal template
defaults:
user: "ops-user"
ssh_key: "~/.ssh/id_ed25519"
theme: mocha # latte | frappe | macchiato | mocha
groups:
- name: "Infrastructure"
servers:
- name: "proxmox-host"
host: "198.51.100.100"
mode: "direct"
Configuration docs
- Full annotated reference: examples/full_config.yaml
- Full configuration guide: docs/configuration.md
- Wallix behavior and auto-selection details: docs/wallix.md
Wallix authorization flow (v0.15)
- susshi builds the Wallix SSH
Useridentity from your selected server host. wallix.groupis inherited from higher levels and can be overridden per server.- If authorization cannot be resolved unambiguously, a targeted TUI popup is shown and the chosen ID is cached for the current session.
- The nominal flow no longer displays the global Wallix pseudo-TTY menu.
Short troubleshooting is available in docs/wallix.md.
CLI Usage
# Direct / jump / wallix one-shot connection
susshi --direct ops-user@app-01.internal.example
susshi --jump ops-user@198.51.100.50
susshi --wallix web-01.internal.example
# Override SSH parameters
susshi --direct app-01.internal.example --user deploy --port 2222 --key ~/.ssh/deploy_rsa
# Alternate config file
susshi --config ~/work/.susshi.yml
# Show all options
susshi --help
Detailed CLI examples: docs/cli.md
TUI Usage
Essential keybindings
| Key | Action |
|---|---|
j / ↓ |
Move selection down |
k / ↑ |
Move selection up |
Enter |
Connect to server / Toggle group |
Space |
Toggle expand/collapse group |
/ |
Enter search mode |
Esc |
Cancel search or close overlays |
v |
Toggle verbose SSH mode |
q |
Quit |
Advanced keybindings
| Key | Action |
|---|---|
Tab, 1, 2, 3 |
Switch connection mode |
d |
Quick diagnostics |
x |
Ad-hoc SSH command |
T |
Tunnel manager |
s |
SCP transfer form |
f / F |
Favorite toggle / favorites-only view |
r |
Hot-reload configuration |
C |
Collapse all |
H |
Toggle recent-sort |
y |
Copy SSH command |
Detailed TUI behavior and visuals: docs/tui.md
Advanced Guides
- Configuration model and inheritance: docs/configuration.md
- Wallix matching and fallback flow (inheritance, targeted selection, troubleshooting): docs/wallix.md
- Full CLI cookbook (import/export included): docs/cli.md
- TUI interactions, diagnostics, tunnels and SCP: docs/tui.md
Contributing
Contributions are welcome. Please open a Pull Request.
License
This project is licensed under the MIT License.
Dependencies
~16–34MB
~503K SLoC