100% client-side — verify in your network tab

SSH Key Generator — Ed25519

A ready-to-use Ed25519 key pair in OpenSSH format, generated locally.

$ ssh-keygen -t ed25519

Why Ed25519?

Ed25519 has been the recommended SSH key type for years: keys are tiny (a 68-character public key line), signing is fast, and the algorithm has none of RSA's parameter pitfalls — no key-size decisions, no padding oracles. It's supported by OpenSSH since 6.5 (2014), by GitHub, GitLab and every modern server. Unless a legacy system forces RSA on you, Ed25519 is the right default.

Using the generated key

Save the private key to ~/.ssh/id_ed25519 and the public key to ~/.ssh/id_ed25519.pub, then tighten permissions and load it:

chmod 600 ~/.ssh/id_ed25519 && ssh-add ~/.ssh/id_ed25519

Add the public key line to ~/.ssh/authorized_keys on servers, or paste it into GitHub/GitLab. The optional comment is embedded in both halves so you can recognize the key later.

Is generating SSH keys in a browser safe?

The key pair is created by your own browser's crypto.subtle.generateKey() — audited native code, not JavaScript math — and the private key is displayed without ever being transmitted or stored; you can verify in the network tab that nothing leaves the page. That said, for high-value production keys the gold standard remains generating them yourself with ssh-keygen -t ed25519, so the private key never touches a rendered web page at all. This tool is ideal for test environments, CI sandboxes, containers and short-lived machines.

Is it safe to generate an SSH key in a browser?

The key pair is created by your browser's own crypto.subtle.generateKey() — audited native code, not JavaScript maths — and the private key is never transmitted or stored. That said, we will give you the honest answer: for a long-lived production key, generating locally with ssh-keygen -t ed25519 remains the gold standard, because the private key then never touches a rendered web page at all. This tool is ideal for test environments, CI sandboxes, containers and short-lived machines.

Ed25519 or RSA?

Ed25519, unless a legacy system forces RSA on you. Keys are tiny, signing is fast, and there are no parameter pitfalls — no key-size decision, no padding oracles. OpenSSH has supported it since 6.5 in 2014, and GitHub, GitLab and every modern server accept it.

Where do I put these two keys?

The private key goes in ~/.ssh/id_ed25519 and must be chmod 600 or OpenSSH will refuse it. The public key goes in ~/.ssh/id_ed25519.pub, and its single line is what you paste into GitHub or append to ~/.ssh/authorized_keys on a server. Never paste the private half anywhere.

Nothing leaves your browser

All generators

Guides