Content
Autenticazione con chiave SSH in PuTTY
Introduzione
In questa guida, imparerai come configurare l'autenticazione basata su chiavi SSH utilizzando PuTTY, un popolare client SSH per Windows. Utilizzando l'autenticazione basata su chiavi invece di quella basata su password, puoi migliorare la sicurezza della tua connessione SSH. L'autenticazione basata su chiavi garantisce che solo chi possiede la chiave privata corrispondente possa accedere, offrendo un metodo di autenticazione più sicuro e affidabile.
Questa guida descrive il processo di configurazione dell'autenticazione con chiavi SSH utilizzando PuTTY e un'applicazione client.
Avvertimento di sicurezza importante: La chiave privata deve essere mantenuta strettamente riservata. Non condividerla mai con terzi, non conservarla su dispositivi non protetti e utilizza una passphrase per una protezione aggiuntiva. In caso di compromissione della chiave, genera immediatamente una nuova coppia di chiavi e aggiorna il file authorized_keys
sul server.
1) Generazione delle chiavi
PuTTYgen è uno strumento della suite PuTTY, progettato principalmente per Windows, per generare coppie di chiavi SSH e convertire formati di chiavi. La sua funzione principale è creare coppie di chiavi pubbliche e private, che possono essere salvate nel formato .ppk
(specifico di PuTTY). Inoltre, PuTTYgen può convertire chiavi tra diversi formati, garantendo la compatibilità con vari client e server SSH, come OpenSSH.
PuTTYgen genera coppie di chiavi costituite da una chiave pubblica, che può essere condivisa, e una chiave privata, che deve rimanere riservata. La chiave pubblica viene utilizzata per l'autenticazione durante la connessione a server remoti.
Il formato .ppk
è specifico di PuTTY, ma PuTTYgen può convertire le chiavi in altri formati, come OpenSSH.
Alternativa: Generazione delle chiavi con PuTTYgen
Puoi generare chiavi direttamente in PuTTYgen su una macchina Windows senza utilizzare un server Linux. Per farlo:
- Apri PuTTYgen.
- Seleziona il tipo di chiave (ad esempio, RSA o EdDSA) e la dimensione (si consiglia 2048 bit o superiore).
- Fai clic su Generate e muovi il mouse per generare entropia.
- Salva la chiave pubblica (copia il testo dal campo "Public key for pasting into OpenSSH authorized_keys file") e la chiave privata come file
.ppk
. - Aggiungi la chiave pubblica al file
~/.ssh/authorized_keys
sul server (vedi sotto).
Tuttavia, in questa guida ci concentreremo sulla generazione delle chiavi su un server Linux utilizzando ssh-keygen
e sulla loro successiva conversione per PuTTY.
Prerequisiti
Prima di iniziare, assicurati di avere i seguenti componenti:
- PuTTY e PuTTYgen — Scaricali dal sito ufficiale. PuTTYgen è incluso nella suite PuTTY.
- Server Linux con OpenSSH installato (generalmente preinstallato nella maggior parte delle distribuzioni).
- Accesso SSH al server con una password (per la configurazione iniziale delle chiavi).
- Opzionale: Una passphrase per proteggere le chiavi (consigliata per maggiore sicurezza).
Verifica della configurazione del server
Prima di generare le chiavi, assicurati che l'autenticazione basata su chiavi sia abilitata sul server. Apri il file /etc/ssh/sshd_config
(con privilegi di root):
sudo nano /etc/ssh/sshd_config
Verifica che la riga PubkeyAuthentication yes
sia presente e non commentata. Se hai apportato modifiche, salva il file e riavvia il servizio SSH:
sudo systemctl restart sshd
(In alcune distribuzioni: sudo service ssh restart
.)
Guida passo-passo alla generazione delle chiavi in Linux
Connettiti al server tramite SSH con una password (usando PuTTY o un altro client) ed esegui i seguenti passaggi come utente con cui desideri autenticarti (preferibilmente non root per motivi di sicurezza; usa sudo
se necessario).
Esegui l'utility ssh-keygen
. Ti verrà chiesto di specificare dove salvare le chiavi (predefinito: ~/.ssh/id_rsa
) e di impostare una passphrase (consigliata per maggiore sicurezza; premi Invio per saltare).
ssh-keygen -t rsa -b 2048
(Opzionale: Usa -t ed25519
per un algoritmo più moderno.)
Ora nella directory ~/.ssh
avrai due file:
id_rsa
— la chiave privata.id_rsa.pub
— la chiave pubblica.
Visualizza le chiavi (opzionale, per verifica):
cat ~/.ssh/id_rsa
cat ~/.ssh/id_rsa.pub
Naviga nella directory ~/.ssh
(se non sei già lì):
cd ~/.ssh
Aggiungi la chiave pubblica al file authorized_keys
(usa >>
per evitare di sovrascrivere contenuti esistenti):
cat id_rsa.pub >> authorized_keys
Imposta i permessi corretti (fondamentali per il funzionamento di SSH):
chmod 700 ~/.ssh
chmod 600 id_rsa
chmod 600 authorized_keys
Dopo questi passaggi, il server è pronto per accettare connessioni basate su chiavi. Riavvia il servizio SSH se hai modificato la configurazione:
sudo systemctl restart sshd
2) Conversione della chiave e autenticazione con PuTTY
Ora trasferisci la chiave privata (id_rsa
) dal server alla tua macchina Windows locale e convertila nel formato .ppk
per PuTTY.
Trasferimento della chiave sulla macchina locale
Usa scp
(dalla suite PuTTY — pscp.exe
) o un altro metodo sicuro. Esempio con pscp
(esegui nel prompt dei comandi di Windows):
pscp user@server_ip:~/.ssh/id_rsa C:\path\to\local\id_rsa
(Sostituisci user@server_ip
con i tuoi dati e C:\path\to\local
con il percorso locale.)
Avvertimento: Non trasferire mai la chiave tramite canali non sicuri (ad esempio, e-mail). Usa metodi crittografati.
Conversione nel formato .ppk con PuTTYgen
Apri PuTTYgen su Windows.

Fai clic su Load e seleziona il file id_rsa
(PuTTYgen supporta il formato OpenSSH).

Se la chiave è protetta da una passphrase, inseriscila.

Dopo il caricamento, fai clic su Save private key e salva il file come .ppk
(ad esempio, mykey.ppk
). Accetta di salvare senza passphrase se non desideri aggiungerne una (anche se è consigliata).
Configurazione di PuTTY per l'uso della chiave
Apri PuTTY.
Nella finestra principale, specifica l'indirizzo IP del server, la porta (di solito 22) e il tipo di connessione SSH.
Naviga in Connection → SSH → Auth → Credentials.
Nel campo Private key file for authentication, specifica il percorso del file .ppk
.

Opzionale: Per l'accesso automatico, vai su Connection → Data e inserisci il nome utente (ad esempio, root
o il tuo utente) nel campo Auto-login username.
Salva la sessione per comodità e connettiti.
Al momento della connessione, se la chiave è protetta da una passphrase, PuTTY ti chiederà di inserirla. Se tutto è configurato correttamente, accederai senza bisogno della password del server.
Suggerimento: Per gestire più chiavi, usa PuTTY Pageant (un agente di chiavi della suite PuTTY). Carica il file .ppk
in Pageant e PuTTY lo utilizzerà automaticamente.
Conclusione
Configurando l'autenticazione con chiavi SSH tramite PuTTY e un server Linux, stabilisci una connessione più sicura e affidabile. L'uso delle chiavi SSH elimina la necessità di inserire password, riducendo il rischio di attacchi brute-force e intercettazioni. Segui i passaggi descritti in questa guida per configurare l'autenticazione con chiavi SSH tramite PuTTY e goditi i vantaggi.
Suggerimenti aggiuntivi: Aggiorna regolarmente le tue chiavi, monitora i log del server (/var/log/auth.log
) e disabilita l'autenticazione con password in sshd_config
(PasswordAuthentication no
) se le chiavi sono l'unico metodo di accesso. In caso di problemi, verifica i permessi dei file e la configurazione del server.