SSH Key Generator
Ed25519 and RSA key pairs generated with the Web Crypto API inside your browser. Verified OpenSSH format — the private key never leaves your device.
Built by
Miguel Ángel Colorado Marin (MACM)
Built by
Miguel Ángel Colorado Marin (MACM)
Full-Stack Developer · Guadalajara, España
I develop web apps, digital tools and full projects — from design to deployment.
SSH keys are the standard for authenticating against servers, Git repositories and cloud services without passwords. This generator creates the full pair (public and private) using exclusively your browser's Web Crypto API: the random bytes and elliptic-curve math happen on your device and never travel over the network. The output format is native OpenSSH — the same line you'd append to authorized_keys and the same PEM file you'd save as id_ed25519 — with a SHA256 fingerprint computed exactly like ssh-keygen -l does. The internal binary format encoding is verified through automated tests against the actual OpenSSH client.
Features
- ✓Recommended Ed25519 plus optional RSA 2048/4096
- ✓Native OpenSSH format ready for ~/.ssh/
- ✓SHA256 fingerprint identical to ssh-keygen's
- ✓Web Crypto API: 100% local generation
- ✓No sign-up, no servers, open source
How to generate an SSH key?
- 1
Choose the key type
Ed25519 is stronger and more compact; use RSA only for very old servers.
- 2
Generate the pair
Hit the button and copy both files.
- 3
Store the private key
Save it as ~/.ssh/id_ed25519 with 600 permissions on Linux/Mac or a protected folder on Windows.
- 4
Publish the public key
Append the public line to ~/.ssh/authorized_keys on your server or under GitHub > Settings > SSH keys.
Frequently asked questions
Is it safe to generate SSH keys on a website?
With this tool yes, because all cryptographic work runs in your browser via the Web Crypto API and you can audit the open-source code on GitHub. Still, for maximum-stakes keys the most conservative practice remains generating them on your own machine with ssh-keygen.
Ed25519 or RSA?
Ed25519 unless you hit an incompatibility: shorter key, faster generation and security equivalent to ~3000-bit RSA. RSA 2048 is still acceptable; avoid DSA and RSA below 2048 bits.
What is the trailing comment in the public line?
It's purely informational (usually user@host) to identify the key inside authorized_keys. You can change it freely without affecting key validity.
Related tools
Embed SSH Key Generator on your site
Add SSH Key Generator to any web page with a simple iframe. Free, with attribution to miguelacm.es.
<iframe
src="https://miguelacm.es/embed/ssh-key-generator"
width="100%"
height="700"
frameborder="0"
title="SSH Key Generator — miguelacm.es"
></iframe>View embed in new tab →