![]() |
Molti utenti SSH credono che chiave pubblica e privata siano entità indipendenti.
In realtà la chiave pubblica è contenuta matematicamente nella privata, e può sempre essere ricostruita se la privata è disponibile.
Questo articolo spiega:
- perché è possibile (teoria crittografica)
- come farlo concretamente (OpenSSH e PuTTY)
- cosa NON è possibile fare (limiti e sicurezza)
1️⃣ Fondamenti teorici (senza formule pesanti)
Crittografia asimmetrica: un riassunto corretto
Un sistema a chiave pubblica si basa su:
- una chiave privata → segreta
- una chiave pubblica → distribuibile
Ma non sono generate separatamente.
👉 La chiave privata contiene i parametri matematici da cui deriva quella pubblica.
Esempio concettuale: RSA
Per RSA:
- la chiave privata include:
- i numeri primi segreti
- il modulo
n - l’esponente privato
- la chiave pubblica è composta solo da:
n(modulo)e(esponente pubblico)
📌 Quindi:
la chiave pubblica è un sottoinsieme delle informazioni contenute nella privata
E con ED25519?
Ancora più chiaro:
- la chiave privata è un seed
- la chiave pubblica è ottenuta applicando una funzione deterministica (curve ellittiche)
👉 Nessuna informazione esterna è necessaria
Asimmetria vera
| Operazione | Possibile |
|---|---|
| Privata → Pubblica | ✅ sempre |
| Pubblica → Privata | ❌ computazionalmente impossibile |
Questa è la base della sicurezza.
2️⃣ Cosa contiene davvero una chiave privata SSH
Un file come:
-----BEGIN OPENSSH PRIVATE KEY-----
contiene:
- parametri segreti
- parametri pubblici
- metadata (algoritmo, commento, KDF)
📌 La chiave pubblica non è persa finché la privata esiste.
3️⃣ Recuperare la chiave pubblica: pratica con OpenSSH
Caso 1: Linux / macOS / WSL
ssh-keygen -y -f ~/.ssh/id_rsa > id_rsa.pub
Spiegazione:
-y→ estrae la chiave pubblica-f→ file della privata>→ salva in formato OpenSSH
id_rsa si riferisce al nome predefinito del file della chiave privata utilizzata nell'autenticazione SSH (Secure Shell), generata con l'algoritmo RSA, che lavora in coppia con un file id_rsa.pub (la chiave pubblica).Caso 2: Windows con file .ppk (PuTTY)
Metodo GUI (universale)
- Aprire PuTTYgen
- Load → file
.ppk - Copiare il contenuto subito dopo la frase:
Public key for pasting into OpenSSH authorized_keys file
Metodo CLI (versioni legacy)
puttygen chiave.ppk -L > chiave.pub
.ppk (PuTTY Private Key) è un formato proprietario di file chiave privata utilizzato da PuTTY, uno strumento per connessioni SSH; contiene la tua chiave privata generata tramite l'utilità PuTTYgen.4️⃣ Verifica crittografica (fingerprint)
Dimostrare che le chiavi corrispondono:
ssh-keygen -lf id_rsa
ssh-keygen -lf id_rsa.pub
✔ Stessa impronta → stessa coppia crittografica
5️⃣ Cosa NON si può fare (importante chiarirlo)
- ❌ Recuperare la chiave privata dalla pubblica
- ❌ Ricostruire la chiave se la privata è persa
- ❌ “Indovinare” una privata da
authorized_keys
📌 Questo rimane vero anche con computer molto potenti.
6️⃣ Implicazioni pratiche (perché è utile saperlo)
- backup incompleti → nessun problema
- migrazione sistemi → recupero immediato
.pubcancellata per errore → ripristinabile- auditing → verifica di corrispondenza
7️⃣ Sicurezza: il vero rischio
Il fatto che la pubblica sia ricavabile non riduce la sicurezza.
Il vero rischio è:
- perdere il controllo della chiave privata
- permessi errati (
chmod 600) - passphrase assente
- Ricorda:
Una chiave privata senza passphrase equivale a una password memorizzata in chiaro: finché resta segreta funziona, ma al primo leak il compromesso è totale.
Conclusione
La chiave pubblica non è un segreto,
la chiave privata contiene tutto ciò che serve per generarla.
Conoscere questo meccanismo:
- evita reinstallazioni inutili
- chiarisce la natura della crittografia asimmetrica
- migliora la consapevolezza sulla sicurezza
Follow me #techelopment
Official site: www.techelopment.it
facebook: Techelopment
instagram: @techelopment
X: techelopment
Bluesky: @techelopment
telegram: @techelopment_channel
whatsapp: Techelopment
youtube: @techelopment
