Co to jest format pliku PPK?
Plik .ppk to plik PuTTY Private Key - tekstowy kontener klucza prywatnego SSH w zastrzeżonym formacie PuTTY, stworzony przez narzędzie do generowania kluczy PuTTYgen i używany przez PuTTY, WinSCP, FileZilla oraz kompatybilne klienty SSH.
Plik przechowuje parę kluczy SSH (zarówno komponenty klucza publicznego, jak i prywatnego) w ustrukturyzowanym, wielowierszowym układzie tekstowym. Pierwsza linia identyfikuje wersję formatu i algorytm klucza, na przykład:
PuTTY-User-Key-File-3: ssh-ed25519
Następnie znajdują się pola nagłówka dla typu szyfrowania i komentarza, a po nich bloki zakodowane w Base64 dla klucza publicznego, opcjonalnie zaszyfrowanego klucza prywatnego oraz MAC do weryfikacji integralności.
Istnieją trzy wersje formatu:
- PPK v1 - przestarzały format archiwalny
- PPK v2 - używany przez PuTTY przed wersją 0.75; ochrona hasłem wykorzystuje KDF oparty na SHA-1 oraz AES-256-CBC; integralność weryfikowana za pomocą HMAC-SHA-1
- PPK v3 - wprowadzony w PuTTY 0.75 (styczeń 2021); zastępuje SHA-1 KDF algorytmem Argon2id, co znacznie utrudnia ataki brute-force na hasło; używa HMAC-SHA-256
PuTTYgen może zaktualizować klucz v2 do v3 w miejscu. Aby użyć klucza .ppk ze standardowymi narzędziami OpenSSH (ssh, scp, sftp), musi on zostać najpierw wyeksportowany do formatu PEM lub nowego formatu OpenSSH za pomocą PuTTYgen; te dwa formaty nie są bezpośrednio wymienne.
Pliki PPK mają zazwyczaj rozmiar 1-4 KB, niezależnie od algorytmu klucza (RSA, DSA, ECDSA, Ed25519).
Bezpieczeństwo
RYZYKO: HIGHPliki PPK zawierają materiał klucza prywatnego - są odpowiednikiem hasła do wszystkich serwerów, na których autoryzowany jest odpowiadający im klucz publiczny. Plik PPK bez hasła daje natychmiastowy dostęp SSH, jeśli zostanie przejęty przez atakującego. Zawsze chroń go silnym hasłem. Używaj formatu PPK v3 (PuTTY 0.75+) dla silniejszej ochrony hasła Argon2id. Nigdy nie przechowuj niezaszyfrowanych plików PPK na dyskach współdzielonych ani nie dołączaj ich do repozytoriów kodu źródłowego. Strony oferujące „otwieranie” lub „podgląd” plików PPK online są niebezpieczne - przesyłanie klucza prywatnego do witryny trzeciej jest równoznaczne z oddaniem hasła.
Szczegóły formatu
w pigułceProgramy otwierające pliki PPK
Szczegóły techniczne
specyfikacja| Kodowanie | Tekstowe (nagłówki ASCII/UTF-8; wewnątrz dane klucza binarnego zakodowane w Base64) |
| Sygnatura pliku | Pierwsza linia to dosłownie PuTTY-User-Key-File-N: algorytm (N = 2 lub 3); identyfikuje wersję i algorytm klucza |
| Wersje formatu | v1 (przestarzała); v2 (PuTTY <0.75, HMAC-SHA-1, KDF oparty na SHA-1); v3 (PuTTY 0.75+, Argon2id KDF, HMAC-SHA-256) |
| Algorytmy klucza | ssh-rsa, ssh-dss (DSA), ecdsa-sha2-nistp256/384/521, ssh-ed25519, ssh-ed448 |
| Szyfrowanie hasła | AES-256-CBC; v2 używa KDF opartego na SHA-1; v3 używa Argon2id (KDF wymagający pamięciowo) - znacznie silniejszy przeciwko brute-force |
| Kontrola integralności | HMAC-SHA-1 (v2) lub HMAC-SHA-256 (v3) obliczany na podstawie klucza publicznego, klucza prywatnego, nazwy algorytmu i komentarza |
| Struktura | Wielowierszowe nagłówki klucz/wartość + bloki Base64: linie klucza publicznego, linie klucza prywatnego, Private-MAC; v3 dodaje linie parametrów Argon2 KDF w przypadku szyfrowania |
| Typowy rozmiar | 1 KB - 4 KB niezależnie od algorytmu klucza |
| Interoperacyjność | Nie nadaje się do bezpośredniego użytku z narzędziami OpenSSH; musi zostać wyeksportowany do PEM lub nowego formatu OpenSSH przez PuTTYgen |
| Zawiera | Zarówno komponenty klucza publicznego, jak i prywatnego w jednym pliku |
| Uwaga dot. bezpieczeństwa | PPK v2 z HMAC SHA-1 jest uważany za słabszy; zaleca się aktualizację do v3 za pomocą PuTTYgen dla kluczy w formacie v2 |
| Wydano | Early 2000s (PuTTY 0.4x era); PPK v3 introduced with PuTTY 0.75 (2021) |
| Najnowsza wersja | PPK version 3 (PuTTY 0.75+, 2021) |
| Specyfikacja | tartarus.org |
Konwersje PPK
Pytania i odpowiedzi społeczności
pytania użytkownikówBrak pytań - bądź pierwszą osobą, która zapyta o pliki PPK.
Najczęściej zadawane pytania
Jak przekonwertować plik PPK na PEM dla systemów Linux/macOS?
brew install putty (macOS) lub apt install putty-tools (Linux). Następnie wykonaj: puttygen key.ppk -O private-openssh -o key.pemJak otworzyć plik PPK w systemie Windows?
Jaka jest różnica między PPK v2 a PPK v3?
Czy mogę używać pliku PPK bezpośrednio z OpenSSH?
puttygen. OpenSSH nie odczytuje natywnie formatu PPK.Mój plik PPK prosi o hasło, którego zapomniałem.
authorized_keys na serwerze.