SSH & Keys
SSH Key Generator
Generate an SSH Key Pair
Key type
Fastest & most secure — recommended for new keys on modern systems
Commentoptional
Passphraserecommended
Learn more
Guides & explainers related to this tool
Tool features
Three key algorithms
PEM and PPK output
Passphrase encryption
SHA-256 fingerprint
What is an SSH key & how it works
An SSH key is a matched pair of cryptographic files: a public key you hand out freely and a private key you keep to yourself. Instead of sending a password, your client proves it holds the private key by signing a one-time challenge from the server. The server checks that signature against the public key listed in ~/.ssh/authorized_keys — so nothing reusable ever crosses the wire during login.
This tool runs OpenSSH's own ssh-keygen to produce the pair, then shows both halves along with a SHA-256 fingerprint. Ed25519 is the default because it yields short keys, verifies quickly, and has no parameter choices to get wrong. RSA stays available for older servers, network appliances, and CI systems that predate Ed25519 support.
.pub half. Install it on servers or paste it into a Git host — it is safe to share.How to use this tool
Ed25519 unless something in your stack requires otherwise. ECDSA and RSA reveal a key-size selector — use at least 2048 bits for RSA, 4096 if your servers can take it.laptop@acme-corp) that helps you spot the key later in an authorized_keys file. The passphrase is optional but strongly recommended..pub public key and the private key as PEM — or PPK if you use PuTTY on Windows. Move both to ~/.ssh/ and run chmod 600 on the private key.ssh-copy-id -i ~/.ssh/id_ed25519.pub user@host, or paste the public key into the server's ~/.ssh/authorized_keys or your Git host's SSH settings.Related tools
Frequently asked questions
ssh-add and you will only type it once per session, so the day-to-day cost is close to zero.ssh-keygen, writes it to a temporary directory, returns it over HTTPS, and deletes that directory immediately — the key is never written to a database or a log. But the private key does travel over the network, and your passphrase is sent with the request. That is fine for lab work, test environments, throwaway hosts, and learning. For a key that guards production infrastructure, run ssh-keygen -t ed25519 -C "you@example.com" on your own machine, where the private key is never transmitted at all.ssh, scp, rsync, and every Unix-like client expect at ~/.ssh/. PPK is PuTTY's own format, used by PuTTY, Pageant, and WinSCP on Windows. Download PEM unless you specifically use PuTTY — and note that converting between them does not change the key itself, only its wrapper.~/.ssh/ on the client machine. SSH refuses to use a private key with loose permissions, so run chmod 700 ~/.ssh and chmod 600 ~/.ssh/id_ed25519. The public key is installed on the server instead, as a single line in that account's ~/.ssh/authorized_keys.ssh-keygen -lf ~/.ssh/id_ed25519.pub locally and compare the string.ssh -T git@github.com. If it fails, check that the private key is in ~/.ssh/ with 600 permissions and loaded via ssh-add.