ToolFeather
Developer / SEORuns in your browser

ECDSA & Ed25519 Key Generator

Generate a modern elliptic-curve key pair, Ed25519 or ECDSA P-256, P-384 or P-521, in your browser, in OpenSSH, PEM and JWK formats. The private key never leaves your device.

Quick presets

ECDSA & Ed25519 Key Generator

Keys are generated by your browser's Web Crypto API and never leave this page. Nothing is uploaded or stored. For long-lived server keys you can also run ssh-keygen on the machine that will use them.

Generated by your browser's Web Crypto API. Keys never leave this page.

ToolFeather · Ed25519 · P-256
Scratchpad auto-saved
Stored in this browser (localStorage)
Step-by-step~40s read

How it works — in four simple steps

No signup and nothing to install — it all runs in your browser.

1

Pick a curve

Ed25519 for SSH, P-256 for TLS/JWT.

2

Add a comment

It labels the SSH public key.

3

Generate

Elliptic-curve keys are near-instant.

4

Copy or download

Then protect the private key.

Pro tip

Ed25519 is the best default for new SSH keys.

Features

Ed25519 and three NIST curves

Ed25519, P-256, P-384 and P-521.

OpenSSH formats

Public key line and openssh-key-v1 private key.

PEM and SEC1

PKCS#8, SPKI and SEC1 (BEGIN EC PRIVATE KEY) with curve parameters.

JWK

For JOSE/JWT libraries (ES256, ES384, ES512, EdDSA).

Fingerprint

SHA-256 fingerprint as ssh-keygen shows it.

Sign and verify

Confirm the key pair works.

About the ECDSA & Ed25519 Key Generator

Elliptic-curve keys give the security of large RSA keys in a fraction of the size. A 256-bit curve key is roughly as strong as 3072-bit RSA, with faster signing and much shorter public keys. Ed25519 is the recommended choice for new SSH keys: it's fast, has small 32-byte keys, and its design avoids the random-number pitfalls that have broken some ECDSA implementations. ECDSA P-256 is the NIST curve used widely in TLS certificates, WebAuthn and JWT (ES256), with P-384 and P-521 for higher security levels.

The key is generated by your browser's Web Crypto API, the same native cryptography used for HTTPS. Ed25519 support depends on the browser, and current Chrome, Edge, Firefox and Safari have it. You get the OpenSSH public key (ssh-ed25519 AAAA… or ecdsa-sha2-nistp256 AAAA…) for authorized_keys and GitHub, the OpenSSH private key for ssh, and PKCS#8, SEC1 (BEGIN EC PRIVATE KEY, with the curve included so OpenSSL can read it), SPKI and JWK versions for code and JWT libraries, plus the SHA-256 fingerprint ssh shows.

The private key isn't passphrase-protected. Add a passphrase with ssh-keygen -p -f id_ed25519 and keep the file at chmod 600. A quick sign-and-verify test confirms the pair works. ECDSA signatures are randomised, so each signature differs, while Ed25519 signatures are deterministic.

Frequently asked questions

5 answers
Should I use Ed25519 or RSA for SSH?
Ed25519 for anything modern: OpenSSH has supported it since 2014 and GitHub, GitLab and cloud providers accept it. Use RSA only for very old systems that don't.
Is ECDSA P-256 secure?
Yes. It's the standard curve for TLS certificates, WebAuthn passkeys and ES256 JWTs, at about 128-bit security, comparable to 3072-bit RSA.
Why is Ed25519 greyed out?
Your browser doesn't support Ed25519 in Web Crypto yet. Update to a current version of Chrome, Edge, Firefox or Safari, or use P-256.
What is the SEC1 format?
SEC1 (BEGIN EC PRIVATE KEY) is the traditional OpenSSL format for EC private keys. The tool includes the curve's identifier so OpenSSL and older libraries can load it.
Can I use these keys for JWT?
Yes. Use the JWK or PEM form with ES256 (P-256), ES384 (P-384), ES512 (P-521) or EdDSA (Ed25519).