OpenSSH_GUI
A GUI for managing your SSH Keys - on Windows, Linux and macOS!
The primary reason for creating this project was to give "end-users"
a modern looking GUI for managing their SSH Keys - and making it easier
to deploy them to a server of their choice.
The program I found -> PuSSHy was, in my opinion
not as user-friendly as it could be. I also wanted to use this program on my different
machines, running on Linux and macOS. So I decided to create my own!
I hope you like it!
No Installation needed! Just run the OpenSSHA_GUI.exe or .bin
It is free to you, if you connect to a Server or not.
This program can be used on PC's (Local Machines) and Servers!
If you choose to connect to a server - beware!
This program - nor the author(s) take responsibility for saved messed up files!
Make a backup if you already have files!
If you need help, open an Issue
The program has a tooltip on every icon, describing what will happen
if you click on it.

You can now convert the Key to the opposite format.
You can choose to delete or keep the key.
If the key is kept, the program will move it into a newly created sub-folder of your
.ssh directory.
App settings can be accessed through the settings context menu.
There is also an option, that the program converts all PPK keys in your .ssh directory
to the OpenSSH format. The PPK Keys are not deleted, they will be put into a folder called PPK

You can sort the keys, if you want to. Just click on the top description category to sort by.

Right-Click on the Connection-status icon and click "Connect" on the showing menu.
-
You can also auth with a public key from the recognized keys on your machine!

-
V2 Feature: Quick Connect

If you submitted a valid connection earlier, the program will save the connection,
and suggest this connection here for quick access. -
You need to test the connection before you can submit it, if you do not use the new Quick-Connect feature.
If you get a connection error, an error window shows up.

Edit your local (or remote) authorized_keys!
In the remote Version you can even add a key from the recognized keys!
The key cannot be added, when it's already present on the remote!

Here you have a list of all "Known Hosts" from your "known_hosts" file. If you want to remove one key from a Host, toggle the button of the specific Key. If you want to remove the whole host, just toggle the button on the top label.
The "View" buttons (formerly "Export") allow you to view and copy your public or private keys. You can also view key fingerprints by clicking the fingerprint button in the key list.
New Feature: The application automatically discovers SSH keys referenced in your ~/.ssh/config file!
- Automatic Discovery: On launch, the app parses your SSH config file and includes all keys specified in
IdentityFileentries - Cross-Location Support: Keys stored anywhere on disk (not just in
~/.ssh) are automatically discovered and displayed - Path Resolution: The app handles various path formats:
- Absolute paths (
/path/to/keyorC:\path\to\key) - Relative paths (relative to
~/.ssh) - Tilde expansion (
~/keys/mykeyor~/.ssh/keys/mykey) - Environment variables (
%USERPROFILE%\.ssh\keyor$HOME/.ssh/key) - Quoted paths (automatically handled)
- Absolute paths (
All discovered keys appear in the main interface alongside keys from the standard ~/.ssh directory.
- Path Column:
- Shows the full file path to each key
- Text is selectable and horizontally scrollable within the cell
- Columns are properly sized by importance, not content width
- Fingerprint Access:
- Click the fingerprint button to view the full key fingerprint in a separate window
- Fingerprints are now accessible on-demand rather than cluttering the main view
- Improved Layout:
- Fixed-width columns for Key Type, Fingerprint button, and Export/Delete actions
- Variable-width Path column with minimum width constraint
- Responsive design that maintains proper alignment when resizing
- All controls have appropriate minimum sizes to prevent UI distortion
Tooltip when not connected to a server

-
The program will create these at startup without prompting if they don't exist:
.ssh/(authorized_keys, known_hosts)
(.config/OpenSSH_GUI/ | AppData\Roaming\OpenSSH_GUI) OpenSSH_GUI and a "logs" directory -
Key Discovery: The application discovers SSH keys from:
- Standard
~/.sshdirectory (files with.pubor.ppkextensions) - All
IdentityFileentries in your~/.ssh/configfile (regardless of location) - Keys are automatically loaded on launch and displayed in the interface
- Standard
You can not disable this feature. The Passwords are stored when:
- you enter a server connection with a password
- provide a password for a keyfile
Your passwords are stored on your local machine inside the SQLite Database, protected with AES-Encryption.
Only the program itself can read any kind of string value inside the database.
- SSH Config Integration: Automatically discovers keys from
~/.ssh/configIdentityFile entries - Enhanced Path Column: Selectable and horizontally scrollable text with proper column sizing
- Fingerprint View: Moved to on-demand window access for cleaner interface
- Improved Layout: Fixed-width columns, proper constraints, and responsive design
- Better UI Stability: Minimum sizes prevent UI distortion during window resizing
-
Add functionality for putting a key onto a Server -
Beautify UI(Improved layout and constraints) -
Add functionality for editing authorized_keys - Add functionality for editing local and remote SSH (user/root) Settings
-
Add functionality for editing application settings -
Servers should be saved and quickly accessed in the connect window. -
Discover keys from SSH config file - many more not yet known!
- Oliver Schantz - Idea and primary development - GitHub
See also the list of contributors who participated in this project.
-
Avalonia UI - Reactive UI
This project is licensed under the MIT License
- see the LICENSE file for details










