SSHCTL is a lightweight CLI tool designed to simplify and streamline SSH connection management. It allows you to store, edit, and quickly connect to your servers using intuitive commands. ⚡
Note: Currently, the focus is on Linux compatibility, as it aligns with my personal workflow. However, support for Windows and macOS is planned if there is community interest—feel free to open an issue or discussions! 💬
- Stable versions: Tagged releases (e.g., v0.1.0, v0.2.0) are considered stable and production-ready ✅
- Development version: The
mainbranch contains the latest development code and is not considered stable⚠️
cargo build --release- Stable version: sshctl (binary package from latest stable release)
- Development version: sshctl-git (builds from
mainbranch)
# For stable version
paru -S sshctl
# For development version (main branch)
paru -S sshctl-git# Connect 🔌
sshctl <connection-name> #ex: sshctl prod-server
# Add connection ➕
sshctl connection add <connection-name> #ex: sshctl connection add prod-server
# Edit connection ✏️
sshctl connection edit <connection-name> #ex: sshctl connection edit prod-server
# Remove connection ❌
sshctl connection remove <connection-name> #ex: sshctl connection remove prod-server
# Show connection 👀
sshctl connection show <connection-name> #ex: sshctl connection show prod-server
# List connections 📝
sshctl connection listConnections are saved in ~/.config/sshctl/connections.toml (or OS equivalent).
Config file structure:
[connections.prod-server]
host = "192.168.1.100"
user = "admin"
port = 2222
ssh_key_path = "~/.ssh/id_ed25519"
description = "This is the prod server. OVH VPS"
[connections.dev-local]
host = "localhost"
user = "developer"
port = 22clap: CLI argument parsingserde+toml: TOML config serializationdirs: cross-platform config file pathsdialoguer: interactive promptsanyhow: error handlingthiserror: custom error types
Built with performance-first mindset using Rust:
- Zero-copy parsing with serde
- Minimal allocations for config handling
- Cross-platform compatibility via dirs crate
- Interactive UX with dialoguer
- Manage ssh key
- Improve connection commands
Part of my transition journey from Fullstack Development to AI/Data Engineering, showcasing Rust for performance-critical applications. 🚀