A macOS application that simplifies SSH server access using your YubiKey's self-signed certificate. The application runs in your menu bar and provides a web interface for managing SSH servers and deploying your YubiKey's public key.
The web interface allows you to manage servers, check YubiKey status, and initiate SSH connections.
Enter server details and deploy YubiKey public key to the server.
Quick access to your servers directly from the macOS menu bar.
- macOS menu bar application for quick access
- Web interface for managing SSH servers
- Automatic YubiKey public key deployment to servers
- Secure SSH connections using YubiKey authentication
- Server configuration management
- macOS
- Python 3.13+
- YubiKey with PIV capability
- SSH access to your servers
- Clone the repository:
git clone https://github.com/robertherbaugh/yubikey-ssh-manager.git
cd yubikey-ssh-manager- Create a virtual environment and activate it:
python -m venv .venv
source .venv/bin/activate- Install the required packages:
pip install -r requirements.txt- Install YubiKey PIV Client:
brew install yubico-piv-tool- Start the application:
python app.py-
The application will appear in your menu bar with a 🔐 icon.
-
Click the icon and select "Open Web Interface" to access the web interface.
-
In the web interface, you can:
- Check YubiKey status
- Add new servers
- View and manage existing servers
- Connect to servers using YubiKey authentication
- Click "Open Web Interface" from the menu bar icon
- Select your YubiKey from the YubiKey menu
- Fill in the server details:
- Server Name (for identification)
- Hostname (IP address or domain)
- Username
- Port (default: 22)
- Click "Add Server"
The application will automatically deploy your YubiKey's public key to the server when you first connect.
- All server credentials are stored locally in
~/.yubikey-ssh-manager/servers.json - The application uses your YubiKey's self-signed certificate for SSH authentication
- No passwords are stored; password is only required for key deployment.
-
YubiKey not detected:
- Ensure your YubiKey is properly inserted
- Check if the YubiKey manager can detect your device
-
Connection issues:
- Verify server credentials are correct
- Ensure the server allows public key authentication
- Check server SSH configuration
Contributions are welcome! Please feel free to submit a Pull Request.
This project is licensed under the MIT License - see the LICENSE file for details.