d88f0843b5f4ed797924718a79b4e8b9406e0f29
sshell
A personal SSH and shell connection manager with a terminal user interface (TUI), built in Rust.
Features
- Connection management — SSH and local shell profiles with tagging, usage tracking, and smart sorting
- Credential storage — Passwords and SSH private keys stored securely in config
- Import from
~/.ssh/config— One command to import all existing hosts - Local shell scan — Auto-detects available shells from
/etc/shells - Quick select — Press
Ctrl+Qthen a number key (1–9) to connect instantly - Encrypted cloud sync — Push/pull config via GitHub Gist or WebDAV with AES-256-GCM encryption
- CLI subcommands — Connect, import, sync, and diagnostics without launching the TUI
Installation
cargo build --release
The binary will be at target/release/sshell.
Runtime requirements
ssh— for SSH connectionssshpass— for password-based SSH authentication
Usage
# Launch the TUI
sshell
# Connect directly by name
sshell connect myserver
# Import hosts from ~/.ssh/config
sshell import
# Sync
sshell sync push
sshell sync pull --strategy merge
# Diagnostics
sshell doctor
sshell doctor myserver
# Print config file path
sshell config-path
Configuration
Config is stored at ~/.config/sshell/config.toml (auto-created on first run).
version = 2
[settings]
backend = "gist"
gist_id = "..."
sync_password = "..."
[connections.myserver]
type = "ssh"
host = "example.com"
port = 22
user = "admin"
auth_ref = "myserver-password"
tags = ["production"]
[credentials.myserver-password]
type = "password"
value = "secret123"
TUI Keybindings
| Key | Action |
|---|---|
j / k / Arrow keys |
Navigate connections |
Enter |
Connect |
e |
Edit connection |
n |
New connection |
d |
Delete connection |
/ |
Search |
Ctrl+Q |
Quick select mode |
2 |
Credential list |
s |
Settings |
i |
Import from SSH config |
q / Esc |
Back / Quit |
Development
# Run tests
cargo test
# Run with debug output
cargo run
License
MIT
Description
Releases
1
Languages
Rust
99.1%
Inno Setup
0.9%