SSH key pair generator (Ed25519)

Generate an SSH key pair in Ed25519 format (recommended today, more compact and faster than RSA), in the standard OpenSSH format. Generation uses your browser's native WebCrypto API: the private key is created locally and is never sent to a server, including the one hosting this page.

How it works

Ed25519 is a modern elliptic-curve signature algorithm, fast and with short keys, and it has become the recommended default for new SSH keys (GitHub, GitLab and most hosts support it natively). This tool generates the key pair via crypto.subtle.generateKey, then manually assembles the two files in the binary format OpenSSH expects: a ssh-ed25519 <base64> comment line for the public key, and the OPENSSH PRIVATE KEY format for the private key.

How do I use these files with OpenSSH?

Download both files, place them in your ~/.ssh/ folder (for example id_ed25519 and id_ed25519.pub), then restrict the permissions of the private file with chmod 600 ~/.ssh/id_ed25519. Add the contents of the .pub file to the authorized keys of the target server or to your GitHub/GitLab account.

Why doesn't the private key have a password?

To stay a simple and predictable tool, this page generates an unencrypted private key (no passphrase). For extended real-world use, it's recommended to protect the private key with a passphrase — you can add one afterward from the command line with ssh-keygen -p -f id_ed25519.

Your SSH keys are produced entirely in your browser using the WebCrypto API: the private key never passes through a server and is stored nowhere other than on your device.