A simple, fast terminal application built with Rust and Ratatui to easily manage and view your SSH keys.
- View SSH Keys: Displays a list of your SSH keys found in the
~/.sshdirectory. - 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
ed25519SSH keys directly from the UI. - PEM File Importer: Securely import existing
.pemfiles from your filesystem with automatic permission handling (chmod 600) and passphrase support viassh-add. - SSH Config Editor: View, add, edit, and delete
~/.ssh/confighost entries directly from the TUI. - Known Hosts Viewer: Browse and manage
~/.ssh/known_hostsentries with the ability to delete stale hosts. - Export to GitHub/GitLab: Push your public keys directly to GitHub or GitLab using their APIs.
- Search/Filter: Quickly find keys by name with real-time filtering.
- Tab-based Navigation: Switch between Keys, Config, and Known Hosts views using number keys.
- Terminal UI: Lightweight and responsive terminal interface.
Please see the CHANGELOG.md for the latest release notes and history.
- Rust (Cargo)
- An existing
~/.sshdirectory with SSH keys.
Clone the repository and build the project using Cargo:
git clone https://github.com/yourusername/easy-ssh-tui.git
cd easy-ssh-tuiIf you just want to install and use it immediately, you can run the provided release script (Mac/Linux):
./release.shAlternatively, you can build and install it manually via Cargo:
cargo build --release
cargo install --path .Run the application from your terminal:
easy-sshOr run it directly using cargo if you are in the project directory:
cargo run- 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
- n: Create a new SSH key
- i: Import a
.pemfile - c: Copy the selected public key to clipboard
- e: Export public key to GitHub or GitLab
- /: Search/filter keys by name
- a: Add a new SSH config entry
- e: Edit the selected entry
- d: Delete the selected entry
- d: Delete the selected known host entry