The one place a key generator can quietly fail
Generating an SSH key pair is two separate jobs, and only the first one is the famous one. The cryptography, producing a private scalar and deriving its public counterpart, is handled by libraries that are heavily reviewed. The second job is turning those bytes into the exact wire formats OpenSSH expects, and that is where a home made generator goes wrong.
The failure is nasty because it is silent. A key with a slightly wrong length prefix or a missing padding byte still looks like a key. It base64 decodes, it has the right prefix, it copies and pastes normally. It simply does not authenticate, and you find out while locked out of a server.
So both formats here were verified against the tools that will actually consume them. The Ed25519 private key was parsed by openssl, which printed back the same key material, and the public key line that ssh-keygen derives from it matched this toolβs own output byte for byte. The RSA path got the same treatment, including the signed magnitude rule that requires an extra zero byte in front of a modulus whose top bit is set.
Generating a pair
- Choose a Key type. Ed25519 is the default.
- Generate. Ed25519 and RSA 2048 are effectively instant, RSA 4096 takes a noticeable moment.
- Read the report. It has a public key section, a private key section and a notes section.
- Copy the single public key line into wherever you are registering the key.
- Save the private key block to a file on your own machine, then tighten its permissions.
Ed25519 against RSA, honestly
Ed25519 is the right default in 2026. The public key is one short line, signing and verification are fast, and there are no size or exponent choices to get subtly wrong. It has been supported by OpenSSH since 2014, so anything maintained in the last decade accepts it.
RSA earns its place for compatibility rather than merit. Older network appliances, some managed hosting control panels and the occasional enterprise system still only understand ssh-rsa, and for those RSA 2048 is the pragmatic answer. RSA 4096 exists for policies that specify a minimum modulus size. It is not meaningfully more secure than Ed25519 for any threat you are likely to face, and it is slower at every step.
What the report leaves out, and why
Two things a desktop generator gives you are deliberately absent here.
There is no comment on the public key. A comment is only a label, and inventing one for you would either be wrong or would require asking for your username and hostname, which is information this tool has no reason to collect. Append your own to the end of the line.
There is no passphrase. Encrypting a private key properly means a key derivation function, a salt, an iteration count and a cipher, all decisions with real consequences, and handing a password field to a web page is exactly the shape of thing that makes people uneasy about browser crypto. Generate the key here and add the passphrase locally with the ssh-keygen option that changes it. That path is short and uses software already installed on every machine that has an SSH client.
Where this fits with the other credential tools
A key pair is one kind of secret among several. If you are preparing a certificate request rather than a login key, CSR Generator builds a real PKCS#10 request and SSL Certificate Decoder reads the result back. For web server passwords rather than keys, htpasswd Generator and Bcrypt Generator produce the hashes those files expect.
To sign or encrypt a message rather than authenticate a session, PGP Tool covers that side. To protect a file directly, Encrypt File does so in the browser. Everything else is on the dev tools hub.

