Hvad er PPK-filformatet?
En .ppk-fil er en PuTTY Private Key-fil - en tekstbaseret SSH-privatnøglebeholder i PuTTYs proprietære format, oprettet af PuTTYgen-nøglegenereringsværktøjet og brugt af PuTTY, WinSCP, FileZilla og kompatible SSH-klienter.
Filen gemmer et SSH-nøglepar (både offentlige og private nøglekomponenter) i et struktureret tekstlayout med flere linjer. Den første linje identificerer formatversionen og nøglealgoritmen, for eksempel:
PuTTY-User-Key-File-3: ssh-ed25519
Dette efterfølges af header-felter for krypteringstype og kommentar, derefter Base64-kodede blokke for den offentlige nøgle, den valgfrit krypterede private nøgle og en MAC til integritetsverificering.
Der findes tre formatversioner:
- PPK v1 - forældet arvformat
- PPK v2 - brugt af PuTTY før 0.75; adgangskodebeskyttelse bruger en SHA-1-baseret KDF og AES-256-CBC; integritet verificeret med HMAC-SHA-1
- PPK v3 - introduceret med PuTTY 0.75 (januar 2021); erstatter SHA-1 KDF med Argon2id, hvilket gør brute-force-angreb på adgangskoder betydeligt sværere; bruger HMAC-SHA-256
PuTTYgen kan opgradere en v2-nøgle til v3 direkte. For at bruge en .ppk-nøgle med standard OpenSSH-værktøjer (ssh, scp, sftp), skal den først eksporteres til PEM eller OpenSSH nyt format via PuTTYgen; de to formater er ikke direkte udskiftelige.
PPK-filer er typisk 1-4 KB uanset nøglealgoritme (RSA, DSA, ECDSA, Ed25519).
Sikkerhed og tryghed
RISIKO: HIGHPPK-filer indeholder privat nøglemateriale - svarende til en adgangskode for alle servere, hvor den tilsvarende offentlige nøgle er autoriseret. En PPK uden en adgangskode giver øjeblikkelig SSH-adgang, hvis den opnås af en angriber. Beskyt altid med en stærk adgangskode. Brug PPK v3-format (PuTTY 0.75+) for stærkere Argon2id-adgangskodebeskyttelse. Gem aldrig ukrypterede PPK-filer på delte drev eller inkluder dem i kildekodelagre. Websteder, der tilbyder at «åbne» eller «vise» PPK-filer online, er farlige - at uploade en privat nøgle til et tredjepartswebsted svarer til at give sin adgangskode væk.
Formatdetaljer
kort fortaltProgrammer der åbner PPK-filer
brew install putty → puttygen key.ppk -O private-openssh -o ~/.ssh/id_rsa for at konvertere til brug med ssh. puttygen key.ppk -O private-openssh -o key.pem - konverterer til OpenSSH PEM-format til brug med ssh/scp/sftp. Tekniske detaljer
dyb specifikation| Kodning | Tekst (ASCII/UTF-8 headere; Base64-kodet binær nøgledata indeni) |
| Filsignatur | Første linje er bogstaveligt `PuTTY-User-Key-File-N: algorithm` (N = 2 eller 3); identificerer version og nøglealgoritme |
| Formatversioner | v1 (forældet); v2 (PuTTY <0.75, HMAC-SHA-1, SHA-1-baseret KDF); v3 (PuTTY 0.75+, Argon2id KDF, HMAC-SHA-256) |
| Nøglealgoritmer | ssh-rsa, ssh-dss (DSA), ecdsa-sha2-nistp256/384/521, ssh-ed25519, ssh-ed448 |
| Adgangskodekryptering | AES-256-CBC; v2 bruger SHA-1-baseret KDF; v3 bruger Argon2id (memory-hard KDF) - væsentligt stærkere mod brute-force |
| Integritetskontrol | HMAC-SHA-1 (v2) eller HMAC-SHA-256 (v3) beregnet over offentlig nøgle, privat nøgle, algoritmenavn og kommentar |
| Struktur | Multi-linje nøgle/værdi-headere + Base64-blokke: offentlige nøglelinjer, private nøglelinjer, Private-MAC; v3 tilføjer Argon2 KDF-parameterlinjer ved kryptering |
| Typisk størrelse | 1 KB - 4 KB uanset nøglealgoritme |
| Interoperabilitet | Ikke direkte anvendelig med OpenSSH-værktøjer; skal eksporteres til PEM eller OpenSSH nyt format via PuTTYgen |
| Indeholder | Både offentlige og private nøglekomponenter i en enkelt fil |
| Sikkerhedsbemærkning | PPK v2 med SHA-1 HMAC anses for at være svagere; opgradering til v3 via PuTTYgen anbefales for nøgler, der stadig er i v2-format |
| Udgivet | Early 2000s (PuTTY 0.4x era); PPK v3 introduced with PuTTY 0.75 (2021) |
| Seneste version | PPK version 3 (PuTTY 0.75+, 2021) |
| Specifikation | tartarus.org |
PPK-konverteringer
Fællesskabets Q&A
spurgt af brugereIngen spørgsmål endnu - vær den første til at spørge om PPK-filer.
Ofte stillede spørgsmål
Hvordan konverterer jeg en PPK-fil til PEM til Linux/macOS?
brew install putty (macOS) eller apt install putty-tools (Linux). Derefter: puttygen key.ppk -O private-openssh -o key.pemHvordan åbner jeg en PPK-fil på Windows?
Hvad er forskellen mellem PPK v2 og PPK v3?
Kan jeg bruge en PPK-fil direkte med OpenSSH?
puttygen. OpenSSH læser ikke PPK-formatet indfødt.Min PPK-fil beder om en adgangskode, men jeg har glemt den.
authorized_keys på serveren.