Wat is het PPK-bestandsformaat?
Een .ppk-bestand is een PuTTY Private Key-bestand - een tekstgebaseerde SSH-privésleutelcontainer in het eigen formaat van PuTTY, gemaakt door de PuTTYgen-sleutelgeneratietool en gebruikt door PuTTY, WinSCP, FileZilla en compatibele SSH-clients.
Het bestand slaat een SSH-sleutelpaar op (zowel de publieke als de privésleutelcomponenten) in een gestructureerde tekstlay-out met meerdere regels. De eerste regel identificeert de formaatversie en het sleutelalgoritme, bijvoorbeeld:
PuTTY-User-Key-File-3: ssh-ed25519
Dit wordt gevolgd door koptekstvelden voor het versleutelingstype en commentaar, daarna Base64-gecodeerde blokken voor de publieke sleutel, de optioneel versleutelde privésleutel en een MAC voor integriteitsverificatie.
Er bestaan drie formaatversies:
- PPK v1 - verouderd legacy-formaat
- PPK v2 - gebruikt door PuTTY vóór 0.75; wachtwoordbeveiliging gebruikt een op SHA-1 gebaseerde KDF en AES-256-CBC; integriteit geverifieerd met HMAC-SHA-1
- PPK v3 - geïntroduceerd met PuTTY 0.75 (januari 2021); vervangt SHA-1 KDF door Argon2id, waardoor brute-force aanvallen op wachtwoorden aanzienlijk moeilijker worden; gebruikt HMAC-SHA-256
PuTTYgen kan een v2-sleutel ter plaatse upgraden naar v3. Om een .ppk-sleutel te gebruiken met standaard OpenSSH-tools (ssh, scp, sftp), moet deze eerst worden geëxporteerd naar PEM of het nieuwe OpenSSH-formaat via PuTTYgen; de twee formaten zijn niet direct uitwisselbaar.
PPK-bestanden zijn doorgaans 1-4 KB, ongeacht het sleutelalgoritme (RSA, DSA, ECDSA, Ed25519).
Beveiliging & veiligheid
RISICO: HIGHPPK-bestanden bevatten privésleutelmateriaal - gelijkwaardig aan een wachtwoord voor alle servers waar de bijbehorende publieke sleutel is geautoriseerd. Een PPK zonder wachtwoordzin geeft onmiddellijke SSH-toegang als deze door een aanvaller wordt verkregen. Bescherm deze altijd met een sterke wachtwoordzin. Gebruik het PPK v3-formaat (PuTTY 0.75+) voor sterkere Argon2id-wachtwoordbeveiliging. Bewaar nooit onversleutelde PPK-bestanden op gedeelde schijven en neem ze niet op in broncode-repositories. Websites die aanbieden om PPK-bestanden online te „openen” of te „bekijken” zijn gevaarlijk - het uploaden van een privésleutel naar een website van een derde partij staat gelijk aan het weggeven van een wachtwoord.
Formaatdetails
in een notendopProgramma's die PPK-bestanden openen
brew install putty → puttygen key.ppk -O private-openssh -o ~/.ssh/id_rsa om te converteren voor gebruik met ssh. puttygen key.ppk -O private-openssh -o key.pem - converteert naar OpenSSH PEM-formaat voor gebruik met ssh/scp/sftp. Technische details
diepe specificaties| Codering | Tekst (ASCII/UTF-8 headers; Base64-gecodeerde binaire sleutelgegevens binnenin) |
| Bestandshandtekening | De eerste regel is letterlijk PuTTY-User-Key-File-N: algorithm (N = 2 of 3); identificeert versie en sleutelalgoritme |
| Formaatversies | v1 (verouderd); v2 (PuTTY <0.75, HMAC-SHA-1, op SHA-1 gebaseerde KDF); v3 (PuTTY 0.75+, Argon2id KDF, HMAC-SHA-256) |
| Sleutelalgoritmen | ssh-rsa, ssh-dss (DSA), ecdsa-sha2-nistp256/384/521, ssh-ed25519, ssh-ed448 |
| Wachtwoordversleuteling | AES-256-CBC; v2 gebruikt op SHA-1 gebaseerde KDF; v3 gebruikt Argon2id (memory-hard KDF) - aanzienlijk sterker tegen brute-force |
| Integriteitscontrole | HMAC-SHA-1 (v2) of HMAC-SHA-256 (v3) berekend over publieke sleutel, privésleutel, algoritmenaam en commentaar |
| Structuur | Sleutel/waarde-headers op meerdere regels + Base64-blokken: publieke sleutelregels, privésleutelregels, Private-MAC; v3 voegt Argon2 KDF-parameterregels toe bij versleuteling |
| Typische grootte | 1 KB - 4 KB ongeacht sleutelalgoritme |
| Interoperabiliteit | Niet direct bruikbaar met OpenSSH-tools; moet worden geëxporteerd naar PEM of het nieuwe OpenSSH-formaat via PuTTYgen |
| Bevat | Zowel publieke als privésleutelcomponenten in één enkel bestand |
| Beveiligingsopmerking | PPK v2 met SHA-1 HMAC wordt als zwakker beschouwd; upgraden naar v3 via PuTTYgen wordt aanbevolen voor sleutels die nog in v2-formaat zijn |
| Uitgebracht | Early 2000s (PuTTY 0.4x era); PPK v3 introduced with PuTTY 0.75 (2021) |
| Laatste versie | PPK version 3 (PuTTY 0.75+, 2021) |
| Specificatie | tartarus.org |
PPK conversies
Community V&A
gevraagd door gebruikersNog geen vragen - wees de eerste om iets te vragen over PPK-bestanden.
Veelgestelde vragen
Hoe converteer ik een PPK-bestand naar PEM voor Linux/macOS?
brew install putty (macOS) of apt install putty-tools (Linux). Gebruik daarna: puttygen key.ppk -O private-openssh -o key.pemHoe open ik een PPK-bestand op Windows?
Wat is het verschil tussen PPK v2 en PPK v3?
Kan ik een PPK-bestand direct gebruiken met OpenSSH?
puttygen. OpenSSH kan het PPK-formaat niet standaard lezen.Mijn PPK-bestand vraagt om een wachtwoordzin, maar ik ben deze vergeten.
authorized_keys op de server bij te werken.