Che cos'è il formato di file PPK?
Un file .ppk è un file PuTTY Private Key - un contenitore di chiavi private SSH basato su testo nel formato proprietario di PuTTY, creato dallo strumento di generazione chiavi PuTTYgen e utilizzato da PuTTY, WinSCP, FileZilla e client SSH compatibili.
Il file memorizza una coppia di chiavi SSH (sia la componente pubblica che quella privata) in un layout di testo strutturato su più righe. La prima riga identifica la versione del formato e l'algoritmo della chiave, ad esempio:
PuTTY-User-Key-File-3: ssh-ed25519
Questa è seguita da campi di intestazione per il tipo di crittografia e il commento, quindi da blocchi codificati in Base64 per la chiave pubblica, la chiave privata (opzionalmente crittografata) e un MAC per la verifica dell'integrità.
Esistono tre versioni del formato:
- PPK v1 - formato legacy obsoleto
- PPK v2 - utilizzato da PuTTY prima della versione 0.75; la protezione tramite passphrase utilizza una KDF basata su SHA-1 e AES-256-CBC; integrità verificata con HMAC-SHA-1
- PPK v3 - introdotto con PuTTY 0.75 (gennaio 2021); sostituisce la KDF SHA-1 con Argon2id, rendendo il brute-force della passphrase significativamente più difficile; utilizza HMAC-SHA-256
PuTTYgen può aggiornare una chiave v2 a v3 direttamente. Per utilizzare una chiave .ppk con gli strumenti standard OpenSSH (ssh, scp, sftp), deve prima essere esportata in PEM o nel nuovo formato OpenSSH tramite PuTTYgen; i due formati non sono direttamente intercambiabili.
I file PPK hanno tipicamente una dimensione di 1-4 KB indipendentemente dall'algoritmo della chiave (RSA, DSA, ECDSA, Ed25519).
Sicurezza e incolumità
RISCHIO: HIGHI file PPK contengono materiale della chiave privata - equivalente a una password per tutti i server in cui la chiave pubblica corrispondente è autorizzata. Un PPK senza passphrase garantisce l'accesso SSH immediato se ottenuto da un utente malintenzionato. Proteggi sempre con una passphrase robusta. Usa il formato PPK v3 (PuTTY 0.75+) per una protezione della passphrase Argon2id più forte. Non memorizzare mai file PPK non crittografati su unità condivise né includerli in repository di codice sorgente. I siti che offrono di «aprire» o «visualizzare» file PPK online sono pericolosi - caricare una chiave privata su un sito web di terze parti equivale a cedere una password.
Dettagli del formato
in sintesiProgrammi che aprono file PPK
brew install putty → puttygen key.ppk -O private-openssh -o ~/.ssh/id_rsa per convertire la chiave da usare con ssh. puttygen key.ppk -O private-openssh -o key.pem - converte nel formato OpenSSH PEM per l'uso con ssh/scp/sftp. Dettagli tecnici
specifiche approfondite| Codifica | Testo (intestazioni ASCII/UTF-8; dati binari della chiave codificati in Base64 all'interno) |
| Firma del file | La prima riga è letteralmente PuTTY-User-Key-File-N: algorithm (N = 2 o 3); identifica la versione e l'algoritmo della chiave |
| Versioni del formato | v1 (obsoleta); v2 (PuTTY <0.75, HMAC-SHA-1, KDF basata su SHA-1); v3 (PuTTY 0.75+, Argon2id KDF, HMAC-SHA-256) |
| Algoritmi della chiave | ssh-rsa, ssh-dss (DSA), ecdsa-sha2-nistp256/384/521, ssh-ed25519, ssh-ed448 |
| Crittografia passphrase | AES-256-CBC; v2 usa KDF basata su SHA-1; v3 usa Argon2id (KDF memory-hard) - sostanzialmente più forte contro il brute-force |
| Controllo integrità | HMAC-SHA-1 (v2) o HMAC-SHA-256 (v3) calcolato su chiave pubblica, chiave privata, nome algoritmo e commento |
| Struttura | Intestazioni chiave/valore su più righe + blocchi Base64: righe chiave pubblica, righe chiave privata, Private-MAC; v3 aggiunge righe di parametri Argon2 KDF quando crittografato |
| Dimensione tipica | 1 KB - 4 KB indipendentemente dall'algoritmo della chiave |
| Interoperabilità | Non utilizzabile direttamente con gli strumenti OpenSSH; deve essere esportato in PEM o nel nuovo formato OpenSSH tramite PuTTYgen |
| Contiene | Sia la componente pubblica che quella privata della chiave in un unico file |
| Nota sulla sicurezza | PPK v2 con HMAC SHA-1 è considerato più debole; si raccomanda l'aggiornamento a v3 tramite PuTTYgen per le chiavi ancora in formato v2 |
| Rilasciato | Early 2000s (PuTTY 0.4x era); PPK v3 introduced with PuTTY 0.75 (2021) |
| Ultima versione | PPK version 3 (PuTTY 0.75+, 2021) |
| Specifica | tartarus.org |
Conversioni PPK
Domande e risposte della community
chiesto dagli utentiAncora nessuna domanda - sii il primo a chiedere informazioni sui file PPK.
Domande frequenti
Come posso convertire un file PPK in PEM per Linux/macOS?
brew install putty (macOS) o apt install putty-tools (Linux). Quindi esegui: puttygen key.ppk -O private-openssh -o key.pemCome si apre un file PPK su Windows?
Qual è la differenza tra PPK v2 e PPK v3?
Posso usare un file PPK direttamente con OpenSSH?
puttygen. OpenSSH non legge nativamente il formato PPK.Il mio file PPK chiede una passphrase ma l'ho dimenticata.
authorized_keys sul server.