SSH Key Generator
security
Generate SSH key pairs in your browser. All key generation runs locally—your private key never leaves your device.
Ed25519
Recommended. Smallest keys, fastest operations, strong security.
Generate Ed25519 keys →RSA
Widest compatibility. Select key size (1024–8192 bits). Default 4096.
Generate RSA keys →ECDSA
Good balance of key size and security. P-256, P-384, P-521 curves.
Generate ECDSA keys →1. How to Use
- Select an algorithm above: Ed25519 (recommended), RSA, or ECDSA.
- For Ed25519: Click 'Generate' to create a key pair; no size configuration needed.
- For RSA: Choose key size (4096-bit recommended; 2048 minimum for modern use).
- For ECDSA: Select curve (P-256, P-384, or P-521).
- Enter an optional passphrase to encrypt the private key. Keep it safe—you need it to use the key.
- Click 'Generate' to create your key pair. Keys are generated entirely in your browser.
- Copy the public key to add to servers (~/.ssh/authorized_keys). Keep the private key secure.
- Download both keys or copy them manually. Never share your private key.
2. How It Works
SSH key pairs use asymmetric cryptography: a public key (shared with servers) and a private key (kept secret). The public key encrypts data that only the private key can decrypt, and the private key signs data that the public key can verify.
Key generation involves selecting a cryptographically secure random number as the private key, then deriving the public key through mathematical operations specific to each algorithm (elliptic curve scalar multiplication for Ed25519/ECDSA; modular exponentiation for RSA).
Ed25519 uses Curve25519: public key = scalar × base point G on the curve. The scalar is the private key. EdDSA signing: create random nonce k, compute R = k×G, compute s = k + H(R,P,m)·a mod L where a is the private scalar, H is SHA-512.
RSA: Choose primes p, q; n = p·q; φ(n) = (p-1)(q-1); choose e (e.g., 65537); compute d ≡ e⁻¹ (mod φ(n)). Public key = (n,e); private key = (n,d). Encryption: c = m^e mod n; decryption: m = c^d mod n ≡ m^(ed) ≡ m (mod n) by Euler's theorem.
ECDSA: Key on curve (e.g., P-256). Private key = random d; public key = d×G. Sign: pick k, R = k×G, r = x_R mod n, s = k⁻¹(H(m) + d·r) mod n. Verify: u₁ = H(m)·s⁻¹, u₂ = r·s⁻¹; check u₁×G + u₂×Q has x-coord ≡ r.
3. About SSH Key Generator
This free online SSH key generator creates RSA, Ed25519, and ECDSA key pairs entirely in your browser. No keys are transmitted to any server—generation uses the Web Crypto API (or equivalent) locally on your device.
The tool produces OpenSSH-format keys compatible with ssh-keygen, OpenSSH servers, GitHub, GitLab, cloud providers, and most SSH clients. You can paste the public key into authorized_keys and use the private key with ssh, scp, or sftp.
SSH keys provide passwordless authentication and are more secure than passwords when properly managed. This tool helps developers, DevOps engineers, and system administrators generate keys quickly without installing local tools.
4. Advantages
- Client-side security: Keys are generated in your browser; private keys never leave your device or touch any server.
- No installation: Generate keys without ssh-keygen or OpenSSH—works on any device with a modern browser.
- Algorithm choice: Ed25519 for best security and performance, RSA for maximum compatibility, ECDSA for a balance.
- OpenSSH compatible: Output format works with standard SSH tools and servers worldwide.
- Passphrase protection: Optionally encrypt the private key with a passphrase for additional security.
5. Real-World Use Cases
- Server access: Add your public key to ~/.ssh/authorized_keys on Linux servers for passwordless login.
- Git hosting: Add your SSH key to GitHub, GitLab, or Bitbucket for secure repository access.
- CI/CD pipelines: Generate ephemeral keys for deployment automation or container builds.
- Cloud providers: Register SSH keys with AWS, GCP, Azure, or other clouds for instance access.
- DevOps and automation: Use keys with Ansible, Terraform, or custom deployment scripts.
- Secure file transfer: Use scp or sftp with your SSH key instead of passwords.