SSH & RSA Key Pair Generator
runs in your browserGenerate an Ed25519 or RSA key pair in your browser, with the public key ready for authorized_keys, PEM files and the SHA-256 fingerprint.
Short, fast and the modern default for SSH. Prefer this unless something old needs RSA.
about this tool
Ed25519 unless something needs RSA
Ed25519 is the modern default for SSH. The keys are short, generation is instant, signing is fast, and the security is comparable to RSA at a far larger size. Every current version of OpenSSH supports it.
RSA is here because some older systems, appliances and managed services still insist on it. If you have a free choice, take Ed25519. If you must use RSA, 2048 bits is the usual minimum and remains fine; 4096 is slower to generate and to use for very little practical gain.
Two different encodings
A key pair comes out in two shapes, and they are not interchangeable.
The PEM files are the standard DER encoding wrapped in base64: PKCS#8 for the private key, SPKI for the public one. That is what most libraries and tools expect when they ask for a key file.
The OpenSSH line is a different format entirely, built from the key's own
numbers rather than from the DER. It is the single line that goes in
authorized_keys, and it is what a server reads. The two describe the same
key in incompatible ways, which is why both are here.
The fingerprint
The fingerprint is the SHA-256 digest of the public key blob, printed exactly
as ssh-keygen -l prints it. Use it to confirm the key on a server is the one
you think it is, without comparing hundreds of base64 characters by eye.
Generate a real key locally
The private key is created in your browser with the platform's cryptographic random source and is never transmitted. That is genuinely true, and it is still not the right way to make a key that guards production access.
A private key that has existed in a browser tab has been through a process
with extensions, a clipboard and a page cache. For anything that matters, run
ssh-keygen -t ed25519 -C "you@example.com" on the machine that will use the
key, so the private half never leaves it. Use this tool for a throwaway key,
for a test fixture, or to see what the formats look like.
To encrypt a file with a passphrase rather than a key pair, use AES encrypt & decrypt; to check a fingerprint by hand, the hash generator computes SHA-256 of anything. To read a certificate rather than make a key — its expiry, the hostnames it covers, its fingerprints — use the X.509 certificate decoder.
questions
- Should I generate an Ed25519 or an RSA key?
- Ed25519 unless something old requires RSA. It is shorter, faster and considered at least as strong as a 3072-bit RSA key. Choose RSA at 3072 or 4096 bits when a device, appliance or legacy server will not accept anything else.
- Is it safe to generate an SSH key in a browser?
- The key is generated by your browser's own cryptographic implementation and never transmitted, so nothing leaves your machine. That said, for the key that protects production infrastructure, ssh-keygen on the machine that will use it remains the conventional choice, and this tool is best for test keys and for inspecting formats.
- What are the different output formats for?
- The one-line authorized_keys form is what you paste onto a server or into a hosting provider's SSH settings. The PEM blocks are the files themselves. The SHA-256 fingerprint is what you compare against what a server reports, to confirm you are looking at the right key.
- How large should an RSA key be?
- 3072 bits is the current recommendation; 2048 is still widely accepted and 4096 costs more computation for a margin most people do not need. Anything below 2048 should not be used at all.
- Do I need a passphrase on the private key?
- For a real key, yes — it encrypts the file at rest, so a stolen laptop does not hand over server access. Keys produced here are unencrypted, which is another reason to treat them as test material.