Rain-Bus 52582fb666
Release / Build aarch64-unknown-linux-gnu (push) Has been cancelled
Release / Build aarch64-apple-darwin (push) Has been cancelled
Release / Build aarch64-pc-windows-msvc (push) Has been cancelled
Release / Build x86_64-unknown-linux-gnu (push) Has been cancelled
Release / Build x86_64-apple-darwin (push) Has been cancelled
Release / Build x86_64-pc-windows-msvc (push) Has been cancelled
Release / Create GitHub Release (push) Has been cancelled
fix: remove default checked flag from PATH task in Inno Setup
2026-06-03 21:21:59 +08:00
2026-05-26 20:13:31 +08:00
2026-05-26 20:13:31 +08:00
2026-05-26 20:13:31 +08:00
2026-05-26 20:17:54 +08:00

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+Q then a number key (19) to connect instantly
  • Encrypted cloud sync — Push/pull config via GitHub Gist, WebDAV, or S3 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 connections
  • sshpass — 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

S
Description
No description provided
Readme 401 KiB
Latest
2026-06-03 21:32:42 +08:00
Languages
Rust 99.1%
Inno Setup 0.9%