Configurare l'autenticazione SSH con chiavi usando PuTTY e un server Linux in 5 passaggi

Per chi è questo tutorial
Questo tutorial è pensato per amministratori o utenti Windows che vogliono connettersi in modo sicuro a un server Linux usando PuTTY come client SSH. Definizione rapida: coppia di chiavi SSH = chiave privata (tieni segreta) + chiave pubblica (la copi sul server).
1. Scarica l’archivio con i binari di PuTTY
Scarica il file ZIP ufficiale con i programmi PuTTY, PuTTYgen e Pageant:
http://the.earth.li/~sgtatham/putty/latest/x86/putty.zip
Scarica e decomprimi in una cartella su Windows. Mantieni i file PuTTYgen.exe, Pageant.exe e putty.exe.
2. Genera coppia di chiavi (privata + pubblica)
- Avvia PuTTYgen.exe.
- Premi il pulsante Generate e muovi il mouse all’interno dell’area per aumentare l’entropia.
- Quando la chiave è pronta, scegli una passphrase robusta (frase lunga, unica). La passphrase cifra la chiave privata.
- Salva la chiave pubblica (Save public key) e la chiave privata (Save private key). Mantieni la chiave privata in una cartella protetta.
Importante: PuTTY salva la chiave privata in formato .ppk. Se devi usare la chiave con OpenSSH remoto puoi convertire il formato con ssh-keygen o con PuTTYgen (Load -> Conversions -> Export OpenSSH key).
3. Configura il server Linux (crea l’utente, salva la chiave pubblica)
Per l’esempio useremo l’account autotimesheet (sostituiscilo col tuo nome utente reale).
Accedi come root o con sudo e crea l’utente:
adduser autotimesheet --disabled-password
Poi esegui:
su autotimesheet
cd /home/autotimesheet
mkdir .ssh
chmod 700 .ssh
cd .ssh
Crea o modifica il file authorized_keys (nota sotto su authorized_keys2): incolla la chiave pubblica su UNA SOLA RIGA. Non includere i marcatori BEGIN/END o commenti aggiuntivi.
Esempio di riga valida (inizia con ssh-rsa):
ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAIBzPeFQv+295iKzuuPH0jA9449pSHVpCwXvCR9EstmYh...
Salva il file e imposta i permessi corretti:
chmod 600 authorized_keys
Nota importante: alcuni tutorial più vecchi usano authorized_keys2; la maggior parte delle installazioni moderne di OpenSSH usa ~/.ssh/authorized_keys. Se il tuo sshd è configurato diversamente, verifica la chiave AuthorizedKeysFile in /etc/ssh/sshd_config.
Importante: la chiave pubblica deve essere esattamente una riga, iniziando con il tipo (ad es. ssh-rsa o rsa-sha2-512). Non aggiungere [email protected] se lo editor lo mette come commento finale.
4. Aggiungi la chiave privata all’agente di autenticazione PuTTY (Pageant)
Avvia Pageant.exe (l’agente SSH di PuTTY). Quando è attivo, fai clic con il tasto destro sull’icona nell’area di notifica e scegli “Add Key”. Seleziona il file .ppk della tua chiave privata e inserisci la passphrase quando richiesta.
Pageant terrà la chiave in memoria così che PuTTY possa usarla senza chiederti la passphrase ad ogni connessione.
5. Connettersi al server con PuTTY
Apri putty.exe. Nella sessione inserisci host o IP (ad esempio yourserver) e il nome utente autotimesheet@yourserver o semplicemente yourserver con l’opzione Auto-login username impostata.
Se Pageant ha la chiave corretta, l’autenticazione avverrà senza richiesta di password del server. Vedrai un messaggio di autenticazione via chiave.
Controlli e risoluzione dei problemi comuni
- Permessi: ~/.ssh deve essere 700 e authorized_keys 600, altrimenti sshd rifiuta la chiave.
- File autorizzato: assicurati che la chiave sia su UNA SOLA RIGA e inizi con il tipo (ssh-rsa, ecdsa-sha2-nistp256, ecc.).
- sshd_config: verifica che PubkeyAuthentication yes sia abilitato e controlla AuthorizedKeysFile (path). Riavvia sshd dopo modifiche.
- Formati: PuTTY usa .ppk; per usare la stessa chiave con OpenSSH converti la chiave con PuTTYgen o ssh-keygen.
- Selinux/ACL: se sono attivi, verifica che il contesto e gli ACL non blocchino l’accesso al file.
Esempio di verifica lato server per debug:
sshd -T | egrep 'pubkey|authorizedkeysfile|passwordauthentication'
journalctl -u sshd -e # o /var/log/auth.log
Suggerimenti di sicurezza e hardening
- Usa una passphrase forte per la chiave privata.
- Conserva la chiave privata offline o in un keystore protetto.
- Disabilita l’autenticazione tramite password in /etc/ssh/sshd_config (PasswordAuthentication no) solo dopo aver verificato che l’accesso via chiave funziona per tutti gli utenti necessari.
- Disabilita l’accesso root diretto (PermitRootLogin no) e usa sudo dagli account amministrativi.
- Limita le chiavi nel file authorized_keys con opzioni come from=”IP” o command=”…” per restrizioni aggiuntive.
Approcci alternativi
- Windows 10/11 include un client OpenSSH: puoi usare ssh.exe o l’agente ssh-agent e convertire le chiavi se necessario.
- Windows Subsystem for Linux (WSL) permette di usare strumenti OpenSSH nativi e le chiavi standard (~/.ssh).
- Per gestione centralizzata delle chiavi, considera soluzioni come SSH certificate authority o strumenti di gestione delle chiavi.
Checklist per i ruoli
Admin:
- Creare utente e cartella .ssh con permessi corretti.
- Verificare sshd_config e riavviare sshd.
Sviluppatore/Utente:
- Generare chiave con passphrase.
- Salvare .ppk e aggiungerla a Pageant.
- Testare la connessione e notificare l’admin se problemi.
Helpdesk:
- Controllare permessi e file authorized_keys.
- Verificare log di autenticazione e segnalare errori ricorrenti.
Glossario rapido
- SSH: protocollo per connessioni sicure a shell remote.
- Chiave pubblica/privata: coppia crittografica per autenticazione senza password.
- Pageant: agente di autenticazione SSH per PuTTY.
Riepilogo
Seguendo questi 5 passaggi puoi togliere la dipendenza dalle password e usare le chiavi SSH per connessioni più sicure: scarica PuTTY, genera la coppia di chiavi con PuTTYgen, copia la chiave pubblica sul server nella home dell’utente, aggiungi la chiave privata a Pageant e connettiti con PuTTY. Controlla i permessi, le impostazioni di sshd e applica le raccomandazioni di sicurezza prima di disabilitare le password.
Nota importante: non perdere la chiave privata o la passphrase; senza di esse non potrai accedere se il server richiede solo l’autenticazione via chiave.
Materiali simili

Windows 10: impossibile creare nuova cartella? Risolvi

Cronologia aggiornamenti Windows 10

Configurare Openfire su CentOS 5.6

Come accedere a Windows Live Mail e migrare a Outlook
Riparare errore SFC: WRP non ha eseguito l'operazione
