PuTTY Key Generator

Generate PPK key pairs for PuTTY securely in your browser.

Client-side only. Nothing leaves your browser

What is a PuTTY Key Generator?

PuTTY stores SSH keys in its own PPK format instead of the OpenSSH format the ssh-keygen command produces. The official way to create one is PuTTYgen, a Windows program bundled with PuTTY. This tool does the same job in your browser: it generates a fresh key pair, packages the private key as a ready-to-use .ppk file, and gives you the matching public key line for the server's authorized_keys file. Already have a key in PEM format? Use the PEM to PPK converter instead of generating a new one.

PPK Version 2 vs Version 3

VersionWorks WithNotes
Version 3PuTTY 0.75+ (2021), current WinSCPCurrent default; Argon2 protection when a passphrase is set
Version 2All PuTTY releases, older WinSCP and FileZillaPick this if a tool rejects a v3 file

Quick Start (Command Line)

Prefer the terminal? PuTTYgen's CLI generates a PPK directly:

puttygen -t ed25519 -o key.ppk

Install with brew install putty (macOS) or sudo apt install putty-tools (Ubuntu).

Frequently Asked Questions

What is PuTTYgen?
PuTTYgen is the key generator that ships with PuTTY. It creates SSH key pairs, saves the private key in PuTTY's PPK format, and imports or exports keys in other formats like PEM and OpenSSH. On Windows it's a GUI app installed alongside PuTTY; on macOS and Linux it's a command-line tool called puttygen, installed via 'brew install putty' or 'apt install putty-tools'. This page performs the same generation step in your browser, so nothing needs installing.
What is the difference between a PPK key and an OpenSSH key?
The cryptographic key is identical; only the file container differs. OpenSSH keys (what ssh-keygen creates) are what the ssh command on Linux and macOS reads. PPK is PuTTY's own container, which stores the public key, private key, and a tamper-check MAC in one structured text file. PuTTY only loads PPK files, and OpenSSH only loads its own formats, which is why converting between the two is such a common task.
How do I use a generated key with PuTTY?
Two steps. First, put the public key line on the server: append it to ~/.ssh/authorized_keys for the user you log in as. Second, point PuTTY at the private key: in the session settings go to Connection > SSH > Auth > Credentials and browse to the .ppk file, then save the session. Alternatively, load the .ppk into Pageant (PuTTY's key agent) and every PuTTY session will use it automatically.
Is there a PuTTYgen for Mac?
There is no official PuTTYgen GUI for macOS, but the command-line version installs cleanly with Homebrew: 'brew install putty' gives you puttygen in the terminal. Run 'puttygen -t ed25519 -o key.ppk' to generate a key. That said, on a Mac you rarely need PPK at all, since the built-in ssh command uses OpenSSH keys. PPK only matters when the key will be used by PuTTY or WinSCP on Windows.
How do I add a passphrase to the generated PPK key?
Keys generated here are saved without a passphrase, because PPK v3's passphrase protection uses Argon2 key derivation that is best done by PuTTY's own tooling. To add one: open the .ppk in PuTTYgen (or run 'puttygen key.ppk -P' on the command line), set a passphrase, and save. From then on PuTTY prompts for it when loading the key, and Pageant asks once per session.

Related Tools

Need to manage SSH connections?

SSH Workbench lets you connect, browse files, and manage servers visually.

Try SSH Workbench Free