Autenticazione con chiave SSH in PuTTY

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:

  1. Apri PuTTYgen.
  2. Seleziona il tipo di chiave (ad esempio, RSA o EdDSA) e la dimensione (si consiglia 2048 bit o superiore).Autenticazione con chiave SSH in PuTTY
  3. Fai clic su Generate e muovi il mouse per generare entropia.                        Autenticazione con chiave SSH in PuTTY
  4. 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. Autenticazione con chiave SSH in PuTTY
  5. 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:

  1. PuTTY e PuTTYgen — Scaricali dal sito ufficiale. PuTTYgen è incluso nella suite PuTTY.
  2. Server Linux con OpenSSH installato (generalmente preinstallato nella maggior parte delle distribuzioni).
  3. Accesso SSH al server con una password (per la configurazione iniziale delle chiavi).
  4. 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.

Autenticazione con chiave SSH in PuTTY

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

Autenticazione con chiave SSH in PuTTY

Se la chiave è protetta da una passphrase, inseriscila.

Autenticazione con chiave SSH in PuTTY

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.

Autenticazione con chiave SSH in PuTTY

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.