SSH Key Generator — Ed25519 & RSA

Create an SSH key pair for GitHub, GitLab, servers or CI deploy keys — Ed25519 by default, in standard OpenSSH format, without installing anything.

Runs in your browserUpdated

🔒 Runs locally with your browser’s Web Crypto API — nothing you type is sent to a server.

Your data never leaves your computer. All processing happens 100% locally in your browser.

How to use the SSH Key Generator

  1. Keep Ed25519 (or choose RSA 4096 for older servers).
  2. Set a comment, usually you@machine.
  3. Click Generate key pair.
  4. Save the private key as ~/.ssh/id_ed25519 and add the public key to GitHub or authorized_keys.

Installing the keys

# save the private key and lock it down
mv ~/Downloads/id_ed25519 ~/.ssh/
chmod 600 ~/.ssh/id_ed25519

# optional: add a passphrase
ssh-keygen -p -f ~/.ssh/id_ed25519

# on the server (or paste into GitHub → Settings → SSH keys)
cat id_ed25519.pub >> ~/.ssh/authorized_keys

OpenSSH refuses private keys that other users can read, so chmod 600 is required. The ~/.ssh folder itself should be 700.

Ed25519, RSA or ECDSA?

TypePublic key lengthNotes
Ed25519~80 charactersRecommended by GitHub and OpenSSH; fast and secure
RSA 4096~720 charactersWorks with very old servers and some hardware devices
ECDSA P-256~140 charactersSupported widely; Ed25519 is usually preferred

The fingerprint

The SHA256:… fingerprint shown above is what GitHub, GitLab and ssh-keygen -lf display for the key, so you can confirm you uploaded the right one. When connecting to a server for the first time, compare its host key fingerprint the same way.

Security notes

Keys are generated with the Web Crypto API and the OS random generator, and are never transmitted. The private key is unencrypted; add a passphrase with ssh-keygen -p and load it into ssh-agent for convenience. For production servers, generating keys locally with ssh-keygen -t ed25519 is equally easy if you prefer not to use a browser.

Need PEM or JWK formats for signing? Use the RSA key generator.

Tools that pair well with the SSH Key Generator

  • Git Command Generator — Pick a task like “undo the last commit but keep my changes” or “rename a branch on GitHub”, fill in your branch names and get the exact Git commands — each line explained, risky steps flagged.
  • Htpasswd Generator — Generate user:hash lines for HTTP Basic Authentication in Apache, Nginx, Traefik and Caddy — with bcrypt by default and nothing sent to a server.
  • SSL Certificate Decoder — Paste a PEM certificate or a full chain to see who it was issued to, which domains it covers, when it expires and how it is signed — like openssl x509 -text, but readable.
  • JWT Decoder — Paste a JSON Web Token to inspect its header and payload, check when it expires and verify its signature.

Frequently asked questions

Is it safe to generate SSH keys in a browser?
The keys are created by the Web Crypto API on your device and never sent anywhere. Still, for very sensitive servers you may prefer ssh-keygen on the machine itself.
Why does SSH say “unprotected private key file”?
The file permissions are too open. Run chmod 600 ~/.ssh/id_ed25519.
Does GitHub accept Ed25519 keys?
Yes — GitHub recommends Ed25519. Paste the public key line under Settings → SSH and GPG keys.
Ed25519 is not available in my browser — why?
Older browsers do not support Ed25519 in Web Crypto. Update the browser, or choose RSA 4096 or ECDSA.

Related tools