Ssh e autenticazione tramite chiavi

Introduzione

Quando ci si deve connettere molto spesso ad un server (o a molti server) tramite ssh, può essere tedioso dover inserire ogni volta la password...

Un modo sicuro per aggirare questo problema è basato sull'autenticazione tramite una coppia di chiavi (privata e pubblica).

Come funziona

Configurazione

Generazione delle chiavi

Per poter gestire questo processo di autenticazione è necessario generare una coppia di chiavi (pubblica e privata). Il comando è semplice:

$ ssh-keygen -t dsa -b 1024 

dove -b rappresenta la lunghezza della chiave e -t viene usato per indicare il tipo di chiave. I possibili valori sono:

rsa1
per la versione 1 del protocollo (altamente sconsigliata)
rsa o dsa
per al versione 2 del protocollo.

Durante la generazione delle chiavi ci viene chiesto dove salvarle (normalmente è ~/.ssh/id_dsa).. il valore di default va bene!

Copia della chiave pubblica

La chiave privata, come illustrato nel funzionamento, viene utilizzato dal computer che richiede la connessione (client), mentre quella pubblica deve essere salvata sul computer al quale connettersi (server).

Prendiamo, ad esempio, la seguente chiave pubblica (contenuta nel file ~/.ssh/id_dsa.pub presente sul client):

ssh-dss AAAAB3NzaC1kc3MAAACBAPe/PbwWkXR7qI8hcbxLRUS0/fIul0eUiSvu/hnXZXZDIZjVi1VlIbipff6n7Z6vF0hJRg6l
[cut]
gjLLTka0/QF8SP4JYFKs0Iasdju6y1slmx9IdzQt+hvMqF2+PPchCWcyBP3S5Zje4T6Az1MgrvuwCXIW6oUZXCA== user@comp

Copiamo il contenuto nel file ~/.ssh/authorized_keys2`` presente sul server, nella home relativa all'utente usato su quella macchina e salviamo il file.

Test di funzionamento

Se tutto è stato eseguito correttamente, sarà possibile connettersi al server tramite un semplice:

$ ssh utente@server

inserendo poi la propria passphrase.

Approfondimenti