SSH Key Generator
Generate Ed25519 and RSA SSH keys locally
Create Ed25519, ECDSA or RSA key pairs in OpenSSH format in your browser, with fingerprints and an authorized_keys line.
- SSH
- Ed25519
- RSA
- OpenSSH
How to use SSH Key Generator
- Pick a Key type: Ed25519 (recommended, if your browser supports it), ECDSA P-256/P-384/P-521, or RSA 2048/3072/4096.
- Optionally type a Comment (often
you@laptop), then press Generate. - Download
id_ed25519andid_ed25519.pub(orid_ecdsa/id_rsa) into~/.ssh, runchmod 600on the private key, and add a passphrase withssh-keygen -p -f ~/.ssh/id_ed25519. - Copy the Public key or the authorized_keys line (with optional
restrict,from=,command=and other options) to the server.
How it works
Keys are generated by your browser’s Web Crypto API (crypto.subtle.generateKey): Ed25519, ECDSA on the NIST curves, or RSASSA-PKCS1-v1_5 with exponent 65537. The tool then encodes them itself in SSH wire format (RFC 4251 strings and mpints): the public key line is type base64(blob) comment, and the private key is written in OpenSSH’s openssh-key-v1 format with the none cipher and KDF, two matching random check integers, the comment and 1, 2, 3… padding.
The SHA-256 fingerprint is the unpadded Base64 SHA-256 of the public key blob, as ssh-keygen -l shows it; the MD5 fingerprint is the legacy colon-separated form. PKCS#8 and SPKI PEM copies come straight from Web Crypto’s export, for tools that want standard PEM.
Limits
- The private key is not encrypted. Add a passphrase afterwards with
ssh-keygen -p; this tool doesn’t implement bcrypt-pbkdf encryption. - Ed25519 needs a browser whose Web Crypto supports it (recent Chrome, Edge, Firefox and Safari). Otherwise the option is disabled and ECDSA or RSA remain.
- No DSA, no FIDO/security-key (
-sk) types, and no certificates. - RSA 4096 can take several seconds to generate on slow devices.
Privacy
Keys are generated in your browser and never uploaded or stored. They exist only in this tab until you download or copy them, and this tool doesn’t create share links. Send to… only offers the public key.
Frequently asked questions
Which key type should I choose?
Ed25519: it is small, fast and the default in modern OpenSSH. Use RSA 3072 or 4096 only for old servers that don’t accept Ed25519 or ECDSA.
Is it safe to generate SSH keys in a browser?
The randomness and key generation come from the same Web Crypto implementation browsers use for TLS, and nothing leaves the page. For high-value keys, generating with ssh-keygen on the machine that uses them is still the gold standard.
How do I add a passphrase to the private key?
Save it to ~/.ssh/id_ed25519, run chmod 600 ~/.ssh/id_ed25519, then ssh-keygen -p -f ~/.ssh/id_ed25519 and enter a new passphrase.
What is the authorized_keys line for?
Append it to ~/.ssh/authorized_keys on the server. Options such as restrict, from="10.0.0.0/8" or command="…" limit what the key can do and where it can be used from.
How do I check the fingerprint matches?
Run ssh-keygen -l -f ~/.ssh/id_ed25519.pub. It prints the same SHA256:… value shown here.
More tools
- Clean Image: Inspect and remove hidden image metadata
- JWT Decoder: Decode and verify JSON Web Tokens
- Diff Checker: Compare two texts line by line
- JS Runner: Run JavaScript and TypeScript in your browser
- JSON Formatter: Format, validate and minify JSON
- Encode / Decode: Base64, URL, HTML entity and hex
- Hash Generator: MD5, SHA and HMAC of any text
- UUID Generator: Generate UUID v4 and v7 in bulk
- Timestamp Converter: Unix time ↔ human dates
- Regex Tester: Test regular expressions live
- URL Parser: Break a URL into its parts
- HTTP Status Codes: Look up any HTTP status code
- MIME Type Lookup: File extension ↔ MIME type
- Password Generator: Strong random passwords and passphrases
- Random String Generator: Random tokens, IDs and keys
- Slug Generator: Turn titles into URL slugs
- Case Converter: camelCase, snake_case, Title Case and more
- Word Counter: Count words, characters and reading time
- JSON to TypeScript: Generate TypeScript types from JSON
- JSON Diff: Compare two JSON documents structurally
- JSON to SQL: Turn JSON arrays into SQL inserts
- YAML ↔ JSON: Convert between YAML and JSON
- XML ↔ JSON: Convert between XML and JSON
- CSV ↔ JSON: Convert between CSV and JSON
- CSV Viewer: View, sort and filter CSV files
- SQL Formatter: Format and beautify SQL queries
- cURL ↔ Fetch: Convert cURL commands to fetch and back
- Markdown Editor: Write Markdown with a live preview
- Text Cleaner: Remove duplicate lines, empty lines and extra spaces
- Find & Replace: Find and replace in any text
- Cron Expression Builder: Build and explain cron schedules
- User-Agent Parser: Identify browser, OS and device from a user agent
- HTTP Headers Inspector: Paste response headers and get them explained
- JWT Generator: Create and sign test JSON Web Tokens
- Certificate Inspector: Decode PEM certificates and keys
- Meta Tag Inspector: Check a page's SEO and social tags
- UTM Builder: Build campaign URLs with UTM parameters
- URL Cleaner: Strip tracking parameters from links
- Robots.txt Generator: Create and test a robots.txt file
- Sitemap Generator: Create an XML sitemap from a list of URLs
- Image Compressor: Shrink JPEG, WebP and AVIF images in your browser
- Image Resizer: Resize images by pixels, percentage or to fit a box
- Image Converter: Convert between PNG, JPEG, WebP and AVIF
- Image to Base64: Encode images as Base64 data URIs and decode them back
- SVG Optimizer: Minify and sanitize SVG files
- Favicon Generator: Make favicon.ico, Apple and Android icons from an image or emoji
- Color Converter: HEX, RGB, HSL, OKLCH and contrast checks
- Number Base Converter: Binary, octal, decimal, hex and float bits
- IP / CIDR Calculator: Subnets, masks and IP ranges for IPv4 and IPv6
- JSONPath Query: Query JSON with JSONPath expressions
- JSON Schema Validator: Validate JSON against a schema, or generate one
- Semver Checker: Check versions against semver ranges
- chmod Calculator: Unix permissions: rwx ↔ octal
- .env Diff: Compare and validate .env files
- TOTP Generator: Generate and verify 2FA codes
- String Escaper: Escape and unescape strings for any language
- Unicode Inspector: See every character, code point and hidden symbol
- Mock Data Generator: Generate realistic fake data
- QR Code Generator: Create QR codes for links, Wi-Fi and contacts
- Lorem Ipsum Generator: Placeholder text in paragraphs, sentences or words
- Date Calculator: Date differences, business days and durations
- Unit Converter: Convert bytes, lengths, weights, temperatures and more
- Query CSV with SQL: Run SQL queries on CSV files
- PDF Merge & Split: Merge, split, reorder and rotate PDFs
- PDF Metadata Cleaner: See and remove hidden PDF metadata
- Office Metadata Cleaner: Remove author and revision data from Word, Excel and PowerPoint
- Images to PDF: Combine images into one PDF
- Image Editor: Crop, rotate, resize and adjust images
- Encrypt / Decrypt Text: Encrypt text with a passphrase (AES-GCM)
- Email Header Analyzer: Trace an email's path and check SPF, DKIM and DMARC
- JSON to Code: Generate Go, Python, Rust, Java, C# and Kotlin models from JSON
- docker run ↔ Compose: Convert docker run commands to docker-compose and back
- Color Palette Extractor: Pull the dominant colours out of any image
- Password Strength Checker: How long would your password take to crack?
- SPF / DKIM / DMARC Checker: Validate and explain email DNS records
- Kubernetes YAML Checker: Validate and explain Kubernetes manifests
- .gitignore Generator: Build a .gitignore from presets
- CSP Builder: Build and check a Content-Security-Policy
- JSON-LD Generator: Create schema.org structured data
- Open Graph Image Generator: Make 1200×630 social preview images
- CSS Generator: Gradients, shadows, clamp() and more
- Time Zone Meeting Planner: Find meeting times across time zones