Mi è capitato di recente di dover gestire chiavi RSA differenti per accedere tramite ssh a server diversi.

Ipotizziamo di dover accedere al server di produzione e al server di test e vogliamo utilizzare chiavi differenti.

Iniziamo con la creazione delle chiavi:

ssh-keygen -t rsa -f ~/.ssh/id_rsa.produzione -b 4096 -C "Chiave per il server di produzione"
ssh-keygen -t rsa -f ~/.ssh/id_rsa.testing -b 4096 -C "Chiave per il server di test"

È ovviamente possibile creare altre chiavi, quante ne servono, facendo bene attenzione a modificare il valore del parametro -f

Nota: il parametro -b definisce il numero di bit della chiave. Nell’esempio qui sopra stiamo creando delle chiavi a 4096 bit, il valore di default del comando ssh-keygen è di 2048 bit.

Adesso bisogna creare (se non esiste) un file di configurazione nella cartella ~/.ssh con il comando

touch ~/.ssh/config

Modifichiamo il file facendolo diventare qualcosa di simile a quanto segue:

# Impostazioni ssh per il server di produzione
Host server.produzione.tld
IdentityFile ~/.ssh/id_rsa.produzione
 
# Impostazioni ssh per il server di test
Host server.testing.tld
IdentityFile ~/.ssh/id_rsa.testing

In questo modo, quando invieremo il comando per accedere ad uno dei server, ssh saprà riconoscere quale chiave usare.

Nota: se il server a cui cerchiamo di accedere non è presente nel file di configurazione, ssh cercherà di utilizzare la chiave di default, presente nel percorso ~/.ssh/id_rsa

Spero che queste poche righe vi siano utili, per maggiori informazioni… indovinate un po’…. il manuale! 😉