easy-ssh-tui 0.1.0

A fast, responsive terminal application built with Ratatui to easily manage and view your SSH keys.
# easy-ssh-tui

A simple, fast terminal application built with Rust and [Ratatui](https://github.com/ratatui-org/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`.
- **Terminal UI:** Lightweight and responsive terminal interface.

## Release Notes
Please see the [CHANGELOG.md](CHANGELOG.md) for the latest release notes and history.

## Requirements

- [Rust]https://www.rust-lang.org/tools/install (Cargo)
- An existing `~/.ssh` directory with SSH keys.

## Installation

Clone the repository and build the project using Cargo:

```bash
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):

```bash
./release.sh
```

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

```bash
cargo build --release
cargo install --path .
```

## Usage

Run the application from your terminal:

```bash
easy-ssh
```

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

```bash
cargo run
```

### Keybindings

- <kbd>Up</kbd> or <kbd>k</kbd>: Move selection up
- <kbd>Down</kbd> or <kbd>j</kbd>: Move selection down
- <kbd>n</kbd>: Open the prompt to **create** a new SSH key
- <kbd>i</kbd>: Open the file browser to **import** an existing `.pem` file
- <kbd>c</kbd>: Copy the selected public key to the clipboard
- <kbd>q</kbd> or <kbd>Esc</kbd>: Quit the application

## Dependencies

- **[ratatui]https://crates.io/crates/ratatui:** Terminal UI library
- **[crossterm]https://crates.io/crates/crossterm:** Cross-platform terminal manipulation
- **[arboard]https://crates.io/crates/arboard:** Cross-platform clipboard support
- **[dirs]https://crates.io/crates/dirs:** System directory paths