Vad är filformatet PPK?
En .ppk-fil är en PuTTY Private Key-fil - en textbaserad behållare för privata SSH-nycklar i PuTTYs proprietära format, skapad av nyckelgenereringsverktyget PuTTYgen och används av PuTTY, WinSCP, FileZilla och kompatibla SSH-klienter.
Filen lagrar ett SSH-nyckelpar (både publika och privata nyckelkomponenter) i en strukturerad textlayout med flera rader. Den första raden identifierar formatversion och nyckelalgoritm, till exempel:
PuTTY-User-Key-File-3: ssh-ed25519
Detta följs av huvudfält för krypteringstyp och kommentar, sedan Base64-kodade block för den publika nyckeln, den valfritt krypterade privata nyckeln och en MAC för integritetsverifiering.
Tre formatversioner existerar:
- PPK v1 - föråldrat äldre format
- PPK v2 - användes av PuTTY före 0.75; lösenordsskydd använder en SHA-1-baserad KDF och AES-256-CBC; integritet verifieras med HMAC-SHA-1
- PPK v3 - introducerades med PuTTY 0.75 (januari 2021); ersätter SHA-1 KDF med Argon2id, vilket gör brute-force-attacker mot lösenord betydligt svårare; använder HMAC-SHA-256
PuTTYgen kan uppgradera en v2-nyckel till v3 direkt. För att använda en .ppk-nyckel med standardverktyg för OpenSSH (ssh, scp, sftp), måste den först exporteras till PEM eller OpenSSH:s nya format via PuTTYgen; de två formaten är inte direkt utbytbara.
PPK-filer är vanligtvis 1-4 KB oavsett nyckelalgoritm (RSA, DSA, ECDSA, Ed25519).
Säkerhet & trygghet
RISK: HIGHPPK-filer innehåller privat nyckelmaterial - motsvarande ett lösenord för alla servrar där den motsvarande publika nyckeln är auktoriserad. En PPK utan lösenord ger omedelbar SSH-åtkomst om den hamnar i händerna på en angripare. Skydda alltid med ett starkt lösenord. Använd PPK v3-format (PuTTY 0.75+) för starkare Argon2id-lösenordsskydd. Lagra aldrig okrypterade PPK-filer på delade enheter eller inkludera dem i källkodsförråd. Webbplatser som erbjuder att «öppna» eller «visa» PPK-filer online är farliga - att ladda upp en privat nyckel till en tredjepartswebbplats motsvarar att ge bort ett lösenord.
Formatdetaljer
i ett nötskalProgram som öppnar PPK-filer
Tekniska detaljer
djup specifikation| Kodning | Text (ASCII/UTF-8-huvuden; Base64-kodad binär nyckeldata inuti) |
| Filsignatur | Första raden är bokstavligen PuTTY-User-Key-File-N: algorithm (N = 2 eller 3); identifierar version och nyckelalgoritm |
| Formatversioner | v1 (föråldrad); v2 (PuTTY <0.75, HMAC-SHA-1, SHA-1-baserad KDF); v3 (PuTTY 0.75+, Argon2id KDF, HMAC-SHA-256) |
| Nyckelalgoritmer | ssh-rsa, ssh-dss (DSA), ecdsa-sha2-nistp256/384/521, ssh-ed25519, ssh-ed448 |
| Lösenordskryptering | AES-256-CBC; v2 använder SHA-1-baserad KDF; v3 använder Argon2id (minneskrävande KDF) - väsentligt starkare mot brute-force |
| Integritetskontroll | HMAC-SHA-1 (v2) eller HMAC-SHA-256 (v3) beräknad över publik nyckel, privat nyckel, algoritmnamn och kommentar |
| Struktur | Flerstegs nyckel/värde-huvuden + Base64-block: rader för publik nyckel, rader för privat nyckel, Private-MAC; v3 lägger till Argon2 KDF-parameterrader vid kryptering |
| Typisk storlek | 1 KB - 4 KB oavsett nyckelalgoritm |
| Interoperabilitet | Inte direkt användbar med OpenSSH-verktyg; måste exporteras till PEM eller OpenSSH:s nya format via PuTTYgen |
| Innehåller | Både publika och privata nyckelkomponenter i en enda fil |
| Säkerhetsnotering | PPK v2 med SHA-1 HMAC anses svagare; uppgradering till v3 via PuTTYgen rekommenderas för nycklar som fortfarande är i v2-format |
| Släppt | Early 2000s (PuTTY 0.4x era); PPK v3 introduced with PuTTY 0.75 (2021) |
| Senaste version | PPK version 3 (PuTTY 0.75+, 2021) |
| Specifikation | tartarus.org |
PPK-konverteringar
Frågor & svar
frågat av användareInga frågor än - bli den första att fråga om PPK-filer.