ToolAdda

🔐 Developer Tools · SSH / DevOps

PEM to PPK Converter

Convert an unencrypted RSA .pem private key into a genuine PuTTY-compatible .ppk file — with a correctly computed Private-MAC that PuTTY, WinSCP, and plink accept without warning. Runs 100% in your browser; your key never touches a server.

Your private key is parsed and converted entirely on your device — nothing is uploaded, logged, or stored on any server.

🔒 100% browser-based 🚫 Zero uploads 🧾 No logging 🆓 Free forever 🏢 Enterprise ready
1 Paste / Upload 2 Convert 3 Download

SSH Key Converter

Paste an unencrypted RSA private key (PKCS#1 or PKCS#8 PEM) below, or drag a .pem/.key file directly onto the box.

or press Ctrl+Enter in the box to convert

Parsing and re-encoding run locally in your browser via node-forge — your private key is never uploaded. This converter currently supports unencrypted RSA keys (PKCS#1 or PKCS#8) and produces a real PPK v2 file with a correctly computed Private-MAC.

PrivateNo server upload
Genuine MACReal PuTTYgen-matching HMAC
PuTTY readyWorks with PuTTY / WinSCP / plink
FreeNo watermark ever
PEM → PPK Convert key

SSH workflow

How This Tool Processes Your Key

A private key never has to touch a network to change formats. Here's exactly what happens, in order, entirely inside your browser tab.

Paste / UploadRead locally via textarea or File API
ValidatePEM structure and key type checked
Re-encodeSSH wire-format PPK blobs built
MACReal HMAC-SHA1 Private-MAC computed
DownloadBlob URL, never a network request

Why ToolAdda

Why Use This Free PEM to PPK Converter

Zero uploads

Your key is parsed and re-encoded entirely in JavaScript on your device.

Genuine Private-MAC

A real HMAC-SHA1 checksum, computed the same way PuTTYgen computes it — not a placeholder.

PuTTY-ecosystem ready

Output loads cleanly into PuTTY, WinSCP, FileZilla, and plink.

No signup, no watermark

No account, no email capture, and output files are never watermarked.

Comparison

ToolAdda vs. PuTTYgen & Typical Online Converters

We can't verify every claim other tools make, so this compares our approach against PuTTYgen's desktop workflow and the general pattern of most online PEM converters.

FeatureToolAddaPuTTYgenTypical online converters
Install requiredNone — runs in browserDesktop download (Windows)None
Key ever leaves your deviceNeverNeverOften uploaded to a server
Real, correct Private-MACYes, verified against PuTTY's own schemeYes (it's the reference tool)Often a placeholder or missing
Works cross-platformAny modern browserWindows-firstUsually yes
CostFreeFreeOften freemium

Complete technical guide

PEM to PPK: Why and How to Convert an SSH Key for PuTTY

What Is a PEM File?

PEM (Privacy-Enhanced Mail) is the near-universal text container for SSH private keys on Linux, macOS, and in cloud provider consoles — base64 DER data wrapped in -----BEGIN ... PRIVATE KEY----- / -----END ... PRIVATE KEY----- lines. An RSA key is typically PKCS#1 (-----BEGIN RSA PRIVATE KEY-----) or the more generic PKCS#8 (-----BEGIN PRIVATE KEY-----). This is the format ssh-keygen, AWS/GCP/Azure, GitHub, and most Linux tooling hand you by default.

What Is a PPK File?

A .ppk file is PuTTY's own private key container — a plain-text format with a header naming the algorithm and format version, an Encryption: field, a free-text Comment:, the public key as base64 (Public-Lines), the private key as base64 (Private-Lines), and a Private-MAC line that lets PuTTY detect a corrupted file or wrong passphrase before ever using the key.

PEM vs PPK: The Real Difference

Both are just containers around the same RSA key material — converting between them changes the file format only, never the cryptographic key itself or what it's capable of. The practical difference is ecosystem: PEM is what OpenSSH, cloud consoles, and Linux/macOS tooling expect; PPK is what the PuTTY family of Windows SSH tools expects. This tool bridges the two without regenerating a new key pair, so every server, Git host, and CI secret that already trusts your existing key keeps working unchanged.

Why Convert PEM to PPK?

The most common trigger: a key generated on a Linux server, in a cloud console, or via ssh-keygen now needs to authenticate from a Windows machine using PuTTY, WinSCP, or FileZilla — none of which read a raw .pem file directly. Rather than generating a brand-new key pair (and updating every server's authorized_keys to match), converting the existing key preserves its identity while making it usable in the PuTTY ecosystem.

PuTTY, WinSCP & FileZilla

PuTTY is the classic Windows SSH terminal client; WinSCP and FileZilla are SFTP/SCP file-transfer clients popular on Windows. All three — plus PuTTY's own SSH agent, Pageant — authenticate using the PPK format natively, which is exactly why a converted key from this tool loads into any of them without extra steps.

How the Conversion Works

This tool parses your PEM using the same DER/ASN.1 structure OpenSSL and OpenSSH use, extracts the RSA key's public exponent, modulus, private exponent, and CRT parameters, then writes them out using PuTTY's own SSH wire-format encoding (length-prefixed integers, called "mpints") for the Public-Lines and Private-Lines sections. Finally, it computes the Private-MAC the same way PuTTYgen does — an HMAC-SHA1 over the concatenated algorithm name, encryption state, comment, and key blobs, keyed by a SHA-1 hash of a fixed label string — so PuTTY's own integrity check passes cleanly.

What This Tool Supports Today

  • Unencrypted RSA keys in PKCS#1 (BEGIN RSA PRIVATE KEY) or PKCS#8 (BEGIN PRIVATE KEY) form — by far the most common case for keys already sitting on a Linux server or downloaded from a cloud console.
  • PPK format v2 output, accepted by every current release of PuTTY, WinSCP, and plink.

What's Not Supported Yet

  • Modern OpenSSH-format keys (BEGIN OPENSSH PRIVATE KEY) — convert to classic PEM first with ssh-keygen -p -m PEM -f yourkey, then paste the result here.
  • Passphrase-encrypted PEM keys — remove the passphrase first (ssh-keygen -p), then convert.
  • ECDSA and Ed25519 keys, and PPK v3 output — for these, and for the reverse direction with full algorithm coverage, use ToolAdda's PPK to PEM Converter.

Common Errors

  • "This is a new OpenSSH-format key" — you pasted a BEGIN OPENSSH PRIVATE KEY file; convert it to classic PEM first as noted above.
  • "Passphrase-encrypted PEM keys are not supported" — strip the passphrase with ssh-keygen -p before converting.
  • "Unable to load key" in PuTTY after conversion — extremely rare with a correctly-generated PPK; double-check you copied the entire output including the final Private-MAC: line if you used copy/paste rather than Download.

Security Best Practices

  1. Set a passphrase on the converted PPK afterward (open it in PuTTYgen, add a passphrase, re-save) if it will live on disk for any length of time.
  2. Never commit a private key, in either format, to a Git repository — even a private one.
  3. Delete the plaintext .pem copy once you've confirmed the .ppk works, if you don't need both formats going forward.
  4. Restrict file permissions on both the original PEM and the converted PPK to your own account only.

Developer Tips

  • Keep the original PEM around if you also work from Linux/macOS or CI — PuTTY only needs the PPK copy.
  • Use Ctrl+Enter after pasting a key into the box as a quick keyboard shortcut to convert.
  • If PuTTY reports a corrupt key file after conversion, re-copy the PEM source carefully — a missing header/footer line is the most common cause, not a bug in the MAC computation.

Security

Security & Privacy Architecture

A private key is one of the most sensitive files a developer handles. This tool is built to earn that trust.

  • 100% browser processing: Parsing and re-encoding run entirely in your browser's JavaScript engine via node-forge.
  • No uploads, ever: Your file never leaves your device via any network request.
  • No server storage, no logging: There is nothing to store or log, because the key material never reaches a server.
  • No registration: No account, email, or personal details are required.
  • SSL secure delivery: The page itself is served over HTTPS.

FAQ

Frequently Asked Questions

What is a PEM file?

PEM (Privacy-Enhanced Mail) is a base64 text container used by OpenSSH, cloud providers, and almost all Linux/macOS tooling to store a private key, wrapped in "-----BEGIN ... PRIVATE KEY-----" lines.

What is a PPK file?

A .ppk file is PuTTY's own private key format, used by PuTTY, WinSCP, FileZilla, and other Windows SSH tools. It stores the algorithm, an optional encrypted private section, a comment, and an integrity MAC as plain text.

What's the difference between PEM and PPK?

They hold the same underlying key material in different containers. PEM is the cross-platform standard; PPK is PuTTY-specific. Converting between them changes only the container, never the actual cryptographic key.

Is my private key uploaded anywhere?

No. Parsing and re-encoding run locally in your browser. Your key is never sent to ToolAdda's servers or any third party.

Is this PEM to PPK converter free?

Yes — completely free, with no watermark, no signup, and no limit on conversions.

Which PEM key formats are supported?

Unencrypted RSA private keys in either PKCS#1 ("-----BEGIN RSA PRIVATE KEY-----") or PKCS#8 ("-----BEGIN PRIVATE KEY-----") form.

Does this tool support ECDSA and Ed25519 keys, or just RSA?

This converter currently focuses on RSA, the most common case for legacy PEM keys. For ECDSA and Ed25519 support (in the other direction), see ToolAdda's PPK to PEM Converter.

Can I convert an OpenSSH-format PEM key?

Not directly — modern "-----BEGIN OPENSSH PRIVATE KEY-----" files aren't parsed by this tool. Convert it to classic PEM first with ssh-keygen -p -m PEM -f yourkey, then paste the result here.

Can I convert a passphrase-encrypted PEM key?

Not yet — encrypted PEM keys aren't supported. Remove the passphrase first (for example with ssh-keygen -p) and convert the resulting unencrypted key.

What PPK version does this tool produce?

PPK format v2, the widely-supported version accepted by every current release of PuTTY, WinSCP, and plink.

Will the generated PPK file work directly in PuTTY?

Yes. The output includes correctly formatted public and private key blobs and a genuine HMAC-SHA1 Private-MAC computed the same way PuTTYgen computes it, so PuTTY accepts the file without any "corrupt key file" warning.

Does this tool set a passphrase on the output PPK?

No — the generated PPK is unencrypted. Open it in PuTTYgen afterward if you want to add a passphrase before saving it long-term.

What is the PPK Private-MAC, and does this tool generate a valid one?

The Private-MAC is an HMAC-SHA1 checksum PuTTY uses to detect a corrupted file or wrong passphrase before ever using the key. This tool computes a real, correct MAC over the exact key data it writes, matching what PuTTYgen itself would produce.

Can I paste my key instead of uploading a file?

Yes — paste the PEM text directly into the editor, or drag & drop a .pem/.key file onto it, or use the Browse button.

Why do I need PPK instead of PEM?

PuTTY, WinSCP, and FileZilla on Windows are built around the PPK format and don't read raw PEM files directly — converting once lets your existing key work with that whole toolchain.

Which tools require a PPK file?

PuTTY, PuTTYgen, Pageant (PuTTY's SSH agent), WinSCP, and FileZilla's SFTP client all use PPK natively on Windows.

Can I use the converted PPK with WinSCP or FileZilla?

Yes. Both accept standard PPK v2 files for SFTP/SCP key-based authentication, exactly what this tool produces.

Does converting a key change its fingerprint?

No. The fingerprint is derived from the public key material, which is identical before and after conversion — only the private key's container format changes.

What happens if I paste an invalid or corrupted key?

The tool validates the PEM structure before converting and shows a clear error message — for an OpenSSH-format or encrypted key, it explains exactly what to do rather than failing silently.

Is there a file size or usage limit?

No artificial limit — private keys are tiny text files, so conversion is effectively instant regardless of how many you convert.

Does this tool work offline?

Once the page and its cryptography library have loaded, conversion works without a network connection.

Can I use this on my phone?

Yes. The interface is fully responsive, including pasting a key or uploading a file from your device.

Is this tool open source?

The page uses the open-source node-forge library for RSA/PEM parsing and hashing; the PPK-writing logic (wire format, MAC) is original code written for ToolAdda.

How is this different from PuTTYgen?

PuTTYgen is a desktop application you install on Windows and use to import a key through its GUI. This tool performs the same PEM-to-PPK conversion instantly in any modern browser, on any OS, with no install.

Can I convert PPK back to PEM?

Yes — use ToolAdda's dedicated PPK to PEM Converter for the reverse direction, which additionally supports ECDSA, Ed25519, PPK v3, and encrypted keys.

Explore more

Ready to Convert Your SSH Key?

Paste your PEM key and get a genuine, PuTTY-ready .ppk file in seconds — free, private, and built for real DevOps workflows.

🔁 Convert PEM to PPK Now