easy-ssh-tui 0.1.1

A fast, responsive terminal application built with Ratatui to easily manage and view your SSH keys.
easy-ssh-tui-0.1.1 is not a library.

easy-ssh-tui

A simple, fast terminal application built with Rust and Ratatui to easily manage and view your SSH keys.

Features

  • View SSH Keys: Displays a list of your SSH keys found in the ~/.ssh directory.
  • Key Details: Automatically shows the associated public and private key contents for the selected SSH key.
  • Copy Public Key: Quickly copy the selected public key to your clipboard with a single keystroke.
  • SSH Key Generation: Create new ed25519 SSH keys directly from the UI.
  • PEM File Importer: Securely import existing .pem files from your filesystem with automatic permission handling (chmod 600) and passphrase support via ssh-add.
  • SSH Config Editor: View, add, edit, and delete ~/.ssh/config host entries directly from the TUI.
  • Known Hosts Viewer: Browse and manage ~/.ssh/known_hosts entries with the ability to delete stale hosts.
  • Tab-based Navigation: Switch between Keys, Config, and Known Hosts views using number keys.
  • Terminal UI: Lightweight and responsive terminal interface.

Release Notes

Please see the CHANGELOG.md for the latest release notes and history.

Requirements

  • Rust (Cargo)
  • An existing ~/.ssh directory with SSH keys.

Installation

Clone the repository and build the project using Cargo:

git clone https://github.com/yourusername/easy-ssh-tui.git
cd easy-ssh-tui

If you just want to install and use it immediately, you can run the provided release script (Mac/Linux):

./release.sh

Alternatively, you can build and install it manually via Cargo:

cargo build --release
cargo install --path .

Usage

Run the application from your terminal:

easy-ssh

Or run it directly using cargo if you are in the project directory:

cargo run

Keybindings

Global

  • 1: Switch to Keys tab
  • 2: Switch to Config tab
  • 3: Switch to Known Hosts tab
  • Up or k: Move selection up
  • Down or j: Move selection down
  • q or Esc: Quit the application

Keys Tab

  • n: Create a new SSH key
  • i: Import a .pem file
  • c: Copy the selected public key to clipboard

Config Tab

  • a: Add a new SSH config entry
  • e: Edit the selected entry
  • d: Delete the selected entry

Known Hosts Tab

  • d: Delete the selected known host entry

Dependencies

  • ratatui: Terminal UI library
  • crossterm: Cross-platform terminal manipulation
  • arboard: Cross-platform clipboard support
  • dirs: System directory paths