Robert R. Herbaugh

security aficionado. technology enthusiast. driven innovator.

YubiKey SSH Manager: Secure & Seamless SSH Authentication on macOS

Managing SSH access can be a hassle, especially when juggling multiple servers and authentication keys. YubiKey SSH Managersimplifies this process by leveraging your YubiKey’s self-signed certificate for secure, passwordless authentication. This lightweight macOS menu bar application provides a web interface for managing SSH servers and deploying public keys, making SSH access both secure and convenient.

Why YubiKey SSH Manager?

If you frequently connect to SSH servers and want a secure yet effortless way to manage authentication, this tool is for you. With YubiKey-based authentication, there’s no need to store passwords—your YubiKey itself acts as the key. Plus, the menu bar integration ensures quick access to your servers at all times.

Key Features

🔹 macOS Menu Bar Integration – Quickly access your servers with a single click.

🔹 Web Interface for Management – Add, edit, and manage servers with ease.

🔹 Automatic Public Key Deployment – Deploy your YubiKey’s public key to servers seamlessly.

🔹 Secure SSH Connections – Authenticate without passwords using your YubiKey.

🔹 Local Data Storage – All server credentials are stored locally for maximum security.

Installation & Setup

Prerequisites

Before you install YubiKey SSH Manager, make sure you have:

✔️ macOS

✔️ Python 3.13+

✔️ A YubiKey with PIV capability

✔️ SSH access to your servers

Installation Steps

1️⃣ Clone the repository:

git clone https://github.com/robertherbaugh/yubikey-ssh-manager.git
cd yubikey-ssh-manager

2️⃣ Create a virtual environment and activate it:

python -m venv .venv
source .venv/bin/activate

3️⃣ Install required packages:

pip install -r requirements.txt

4️⃣ Install YubiKey PIV Client:

brew install yubico-piv-tool

Running the Application

Start the application with:

python app.py

You’ll see a 🔐 icon appear in your menu bar—click it to open the web interface and start managing your servers!

Adding a New SSH Server

1️⃣ Click “Open Web Interface” from the menu bar icon.

2️⃣ Select your YubiKey from the dropdown menu.

3️⃣ Enter the server details (hostname, username, port).

4️⃣ Click “Add Server” – the app will deploy your YubiKey’s public key automatically!

Enhanced Security

🔒 No stored passwords – The app only uses your YubiKey’s self-signed certificate for authentication.

🔒 Local credential storage – Server details are stored locally at ~/.yubikey-ssh-manager/servers.json.

🔒 Public key authentication – Ensures secure and passwordless SSH access.

Troubleshooting & Support

💡 YubiKey not detected?

• Ensure your YubiKey is inserted properly.

• Check if YubiKey Manager can detect your device.

💡 SSH connection issues?

• Verify server credentials.

• Ensure the server allows public key authentication.

• Check the SSH configuration on your server.

Get Started with YubiKey SSH Manager

Ready to simplify and secure your SSH access? Download YubiKey SSH Manager today! 🚀

🔗 GitHub Repository: YubiKey SSH Manager

What’s next?

This is a work in progress! This is an open-source project that I have leveraged AI to assist me with. I’d love to see how this can become a better open source project with support and improvements from the community! I am unsure if something like this already exists, but I saw a need and hope this works for you as well!

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Discover more from Robert R. Herbaugh

Subscribe now to keep reading and get access to the full archive.

Continue reading