How to use
- Choose the key type. Ed25519 is the usual choice; pick RSA 4096 for very old systems.
- Optionally add a comment, such as your email or computer name, to tell keys apart on the server.
- Click Generate key pair. Add the public key to ~/.ssh/authorized_keys on the server or to SSH keys in your GitHub settings.
- Download the private key into ~/.ssh/ and run chmod 600 on it.
Options explained
- Ed25519
- A signature scheme on Curve25519. The public key is only 68 characters, security is comparable to RSA 3072 or more, and it is fast — the first choice today.
- RSA
- The most compatible. 2048 bits is the minimum, OpenSSH now defaults to 3072, and 4096 is more conservative but slower to generate.
- Output formats
- The public key is the one-line OpenSSH format. The private key is in OpenSSH format (the same as id_ed25519 or id_rsa from ssh-keygen), with PEM (PKCS#8 private, SPKI public) as well for other software.
- Fingerprint
- The SHA256 fingerprint, identical to what ssh-keygen -lf and GitHub's settings page show, so you can check which key is which.
Adding the key to a server
# append the public key on the server
echo "ssh-ed25519 AAAA... me@laptop" >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
# after saving the private key locally
chmod 600 ~/.ssh/id_ed25519
ssh -i ~/.ssh/id_ed25519 user@server
Frequently asked questions
Is it safe to generate keys on a web page?
Keys are generated by the browser's built-in WebCrypto using the system's secure random number generator. Everything happens locally, nothing is uploaded, and it works offline. For highly sensitive use, generating with ssh-keygen on your own machine is still the safest option.
Why does the private key have no passphrase?
The browser produces an unencrypted private key. After saving it, run ssh-keygen -p -f ~/.ssh/id_ed25519 to add a passphrase.
Does it work on Windows?
Yes. Windows 10 and 11 include the OpenSSH client; save the private key under C:\Users\<you>\.ssh\. For PuTTY, convert the private key to .ppk with PuTTYgen first.
How do I check a public key matches a private key?
Run ssh-keygen -y -f <private key file>. It prints the matching public key, which you can compare with the one on the page.
Privacy
This tool runs entirely in your browser. Your files and text are processed on your device and are never uploaded to our servers.