SSH key generator
Ed25519 or ECDSA P-256 in genuine OpenSSH format — id_ed25519 and id_ed25519.pub work with ssh, ssh-add and ssh-keygen without conversion. A key passphrase, SHA256 and MD5 fingerprints, randomart, a restricted authorized_keys line, a ~/.ssh/config block and an inspector for any public key.
Free, no sign-up
Usually user@host or an email — shown in authorized_keys and on GitHub. Not a secret.
Empty means id_ed25519, like ssh-keygen. For a dedicated key: e.g. id_ed25519_github.
Encrypts the private key file (bcrypt_pbkdf + AES-256-CTR, like ssh-keygen). Never stored or sent.
Key
How the generator works
Randomness
The key secret is 32 bytes from crypto.getRandomValues (the browser’s cryptographic generator). Math.random is never used.
Key
Ed25519 and ECDSA P-256 are computed with @noble/curves (an audited JavaScript implementation, no WebAssembly).
OpenSSH format
The private key is packed into an openssh-key-v1 container exactly like ssh-keygen does: two equal random check values, the key, the comment, padding 1, 2, 3… and base64 wrapped at 70 characters.
Passphrase
With a passphrase the key is encrypted like ssh-keygen does it: bcrypt_pbkdf (16-byte salt, 24 rounds by default) derives the key and IV for AES-256-CTR (WebCrypto). The work is split into chunks so the page stays responsive.
Fingerprints
SHA256 (base64 without “=”) and MD5 (colon-separated pairs) over the public key blob; randomart uses the “drunken bishop” algorithm from sshkey.c character for character.
Standards and formats
SSH data types (string, uint32, mpint)
- Document
- RFC 4251 §5
Public key format, ssh-rsa, ssh-dss
- Document
- RFC 4253 §6.6
Ed25519 in SSH (ssh-ed25519)
- Document
- RFC 8709; signatures — RFC 8032
ECDSA in SSH (ecdsa-sha2-nistp256/384/521)
- Document
- RFC 5656 §3.1; curves — FIPS 186-5 / SEC 2
openssh-key-v1 private key container
- Document
- OpenSSH PROTOCOL.key
Passphrase key derivation
- Document
- bcrypt_pbkdf (OpenBSD, OpenSSH 6.5+)
Private key cipher
- Document
- AES-256 in CTR mode (NIST SP 800-38A)
Base64
- Document
- RFC 4648 §4
SSH2 public key format for the inspector
- Document
- RFC 4716
authorized_keys options, ~/.ssh/config
- Document
- sshd(8), ssh_config(5)
Browser support
- Requires crypto.getRandomValues and WebCrypto AES-CTR — available in all current Chrome, Edge, Firefox and Safari, including mobile. WebCrypto works only over HTTPS, which this site uses.
- Ed25519 and ECDSA are computed in JavaScript, so they do not depend on browser support for Ed25519 in WebCrypto.
- Passphrase encryption with 24 rounds takes a fraction of a second on a computer and about a second on a phone; 100 rounds take several times longer.
Limitations
- RSA keys are not generated: finding large primes in a browser is slow, and Ed25519 is shorter, faster and supported by every modern server, GitHub and GitLab. RSA keys can still be inspected.
- Hardware token keys (sk-ssh-ed25519@openssh.com) can only be created with ssh-keygen -t ed25519-sk next to the token — a browser cannot write a key into it. Such public keys can be inspected.
- OpenSSH certificates (*-cert-v01@openssh.com) and PuTTY (.ppk) files are not created; convert the key with PuTTYgen for PuTTY.
- JavaScript cannot guarantee that strings are erased from memory: “Wipe keys” zeroes the secret bytes and removes the key from the page; close the tab after working with keys.
The inspector warns about weak and outdated key types: RSA under 2048 bits is considered weak (NIST SP 800-57), and OpenSSH 9.1+ rejects keys under 1024 bits — replace it. ssh-rsa (SHA-1) signatures are disabled since OpenSSH 8.8; the key itself works with rsa-sha2-256/512. Prefer Ed25519 for new keys. DSA has been disabled since OpenSSH 7.0 and removed in OpenSSH 10.0 — replace the key. A hardware token key (FIDO/U2F): the private part lives in the token and login requires a touch.
Security and privacy
- The key is created on your device and exists only in this tab’s memory: it is not stored in localStorage, not put in the page address and never sent to a server — the site never sees it.
- The passphrase is not stored either. The browser remembers only settings: algorithm, comment, file name, rounds, authorized_keys options, the ~/.ssh/config block and pasted public keys.
- The private key stays hidden until you press “Show”; download and copy work without revealing it.
- Analytics receives only the fact of a download or copy and categories (algorithm, passphrase yes/no, file type) — no keys, comments or addresses.
- The result reaches us only if you send a request yourself and keep the “Attach the result” box ticked — the form shows exactly what will be sent. Keys, passwords and tokens are never part of the summary: it holds the algorithm, passphrase yes/no, rounds and the public key’s SHA256 fingerprint — not the key itself or its comment.
- For keys to production servers, ssh-keygen on your own computer is the most trustworthy option. This tool does the same thing and helps when ssh-keygen is not at hand or you need authorized_keys and config quickly.
Related tools
All tools · 40
Password and passphrase generatorPasswords, passphrases from English or Russian words, PINs and patterns from a cryptographic generator, exact entropy and crack times, and a check of your own password for common weaknesses.
WireGuard config generatorA website cannot be a VPN — but here you build a real WireGuard setup for your server: X25519 keys, wg0.conf with NAT, a .conf and QR code per phone and laptop, subnet and route checks, a ZIP and setup steps. Keys never leave your browser.
JWT decoder, verifier and builderDecode a token part by part, verify HS/RS/PS/ES/EdDSA signatures with a PEM, JWK or JWKS key, see expiry with a countdown, 16 security rules, and build test tokens.
CIDR subnet calculatorIPv4 and IPv6: mask, range and exact address count, a binary view with the network boundary, subnetting and VLSM, list merging, overlaps with an address map, reverse DNS zones.
Image compressor (WebP/AVIF)Drop images in — WebP, AVIF or JPEG by quality or a target size in KB, a 1:1 before/after slider, srcset and <picture>, batch ZIP. All in the browser.Need to sort out server access?
Technical consulting: team keys and access, a bastion host, disabling password logins, key rotation and authorized_keys audits. The first short call is free.
- The first short conversation is free — we choose the format
- NDA — yours or ours
- Pricing after a brief and an agreed scope