Lazyssh: Tame Your Server Farm with Terminal-Based SSH Management

lazyssh

Are you tired of juggling countless SSH commands, remembering obscure IP addresses, or fumbling with scp for file transfers? If you’re managing a fleet of servers, whether for development, staging, or production, you know the pain. But what if there was a better way?

Inspired by the intuitive power of tools like lazydocker and k9s, Lazyssh emerges as your new best friend for navigating, connecting to, and managing your servers directly from the comfort of your terminal. Built with Go, Lazyssh transforms your ~/.ssh/config file into a dynamic, interactive dashboard, making server management a breeze.

✨ What Makes Lazyssh a Game-Changer?

Lazyssh isn’t just another SSH client; it’s a comprehensive TUI (Terminal User Interface) wrapper that puts you in control with a clean, keyboard-driven interface.

Effortless Server Management

  • See All Your Servers: Lazyssh reads and beautifully displays all entries from your ~/.ssh/config in a scrollable, easy-to-read list.
  • Add & Edit with Ease: Forget manual file editing. Add new servers or modify existing ones directly from the UI with a comprehensive, tabbed interface for all your SSH configuration needs.
  • Safety First: Delete server entries safely, knowing that Lazyssh handles your ssh_config with care, including automatic backups.
  • Stay Organized: Pin your favorite servers to the top, tag them (e.g., prod, dev, test) for quick filtering, and sort them by alias or last SSH connection.
  • Check Status: Ping servers to quickly ascertain their reachability.

Lightning-Fast Server Navigation

  • Fuzzy Search: Find any server instantly by alias, IP, or tags with powerful fuzzy search.
  • One-Key SSH: Hit Enter and you’re connected. It’s that simple.
  • Clipboard Integration: Copy SSH commands to your clipboard with a single keypress.

Advanced SSH Configuration at Your Fingertips

Lazyssh brings the full power of OpenSSH to a user-friendly interface.

  • Port Forwarding: Easily set up LocalForward, RemoteForward, and DynamicForward connections.
  • Connection Multiplexing: Speed up subsequent connections with built-in multiplexing support.
  • Comprehensive Authentication: Configure public key, password, and agent forwarding options.
  • Security & Proxy Settings: Dive into ciphers, MACs, key exchange algorithms, and flexible ProxyJump or ProxyCommand configurations.
  • Tabbed Interface: All these extensive options are neatly organized into intuitive tabs like Basic, Connection, Forwarding, Authentication, and Advanced.

Smart Key Management (Upcoming)

Future versions of Lazyssh promise even more powerful key management features, including:

  • Copying files between local and remote servers with an easy picker UI.
  • SSH Key Deployment: Automatically append public keys to ~/.ssh/authorized_keys, generate new keypairs, and support default local public keys.

🛡️ Security You Can Trust

One of the most important aspects of any SSH tool is security, and Lazyssh excels here:

  • No New Risks: Lazyssh is a UI/TUI wrapper around your existing ~/.ssh/config and leverages your system’s native ssh binary (OpenSSH) for all connections.
  • Privacy Preserved: Private keys, passwords, and credentials are never stored, transmitted, or modified by Lazyssh itself.
  • Config Safety: Lazyssh implements non-destructive writes, preserving your comments and formatting. It also creates atomic writes and robust backup mechanisms (one-time original backup and rolling timestamped backups) before any changes are made.

📦 Get Started with Lazyssh Today!

Ready to streamline your SSH workflow? Installation is simple:

Option 1: Homebrew (macOS)

Bash

brew install Adembc/homebrew-tap/lazyssh

Option 2: Download Binary from Releases

Grab the latest version for your OS/ARCH from GitHub Releases. A convenient snippet is provided in the README to automate this process.

Option 3: Build from Source

If you prefer building from source:

Bash

git clone https://github.com/Adembc/lazyssh.git
cd lazyssh
make build
./bin/lazyssh
# Or run directly
make run

⌨️ Master Lazyssh with Simple Key Bindings

Lazyssh is designed for keyboard efficiency. Here are some essential bindings:

  • ↑↓/jk: Navigate servers
  • Enter: SSH into selected server
  • c: Copy SSH command to clipboard
  • g: Ping selected server
  • a: Add server
  • e: Edit server
  • d: Delete server
  • p: Pin/Unpin servers
  • q: Quit

(A hint bar at the top of the list provides context-aware shortcuts!)

🤝 Contribute and Support

Lazyssh is an open-source project, and contributions are highly welcome! Whether you spot a bug, have a feature request, or want to submit a pull request (following the semantic PR guidelines), your input helps make Lazyssh better.

Lazyssh is built with the excellent tview and tcell libraries, a testament to the power of the Go ecosystem for creating robust terminal applications. Say goodbye to SSH headaches and embrace the efficiency of Lazyssh.

https://github.com/Adembc/lazyssh

Post Comment

You May Have Missed