Molti di voi non lo sanno ma SSH è una tecnologia molto utile che, ad esempio, permette di proteggere la vostra identità su Internet. L’unico problema sta nel fatto che è necessario inserire una password ogni volta che si tenta di accedere da remoto a una macchina. È possibile risolvere questo problema effettuando una semplice modifica che vi spiegheremo in questa nuova guida odierna intitolata “Come generare chiavi SSH su Linux“.
Premessa
Se siete degli sviluppatori che cercano di connettersi da remoto a una serie di macchine contemporaneamente tramite SSH e non volete inserire ogni volta le varie password, c’è una soluzione per risolvere questo problema.
L’intero processo permette di generare una chiave SSH sicura sul computer host in modo da accedervi ogni volta che volete e soprattutto permette a chiunque disponga della chiave di poter accedere senza conoscere la password.
Chiavi SSH: cosa sono
Una chiave SSH è un file di identificazione univoco utilizzato con Secure Shell (shell sicura). Lo scopo di queste chiavi è quello di fornire un’identità univoca all’utente e contrassegnarlo come attendibile durante l’accesso alla macchina remota.
In parole povere, queste chiavi dimostrano l’identità di qualcuno e permettono di accedere senza inserire la classica password. La chiave SSH è posizionata in modo sicuro all’interno di Linux, quindi non è visibile facilmente agli altri utenti che utilizzano il PC.
Come generare chiavi SSH su Linux
Per creare una chiave SSH sicura bisogna prima controllare che SSH sia attivo e in esecuzione. Questo non significa che bisogna per forza disporre di un server SSH ma solo avviare gli strumenti di base di SSH sul vostro PC Linux. Se non sapete come configurare SSH, date un’occhiata alla guida elencata qui sotto.
Fate attenzione a generare sempre le chiavi SSH sul sistema che ospita il server SSH. Inoltre, non provate a crearle sul server che non ospita una sessione SSH e copiarli poi sul computer host.
Detto ciò, per avviare il processo di generazione di una chiave SSH, aprite il terminale ed eseguite il comando ssh-keygen -t rsa.
Il comando restituirà un messaggio il quale riporta che il sistema ha generato sia una chiave pubblica che una privata. Le prime possono essere usate da chiunque, quindi sono condivisibili con gli altri utenti che hanno bisogno di accedere alla macchina da remoto. Le seconde, invece, non devono essere mai condivise con gli altri. In ogni caso, le chiavi SSH verranno salvate all’interno della cartella /home/username/.ssh/id_rsa.
Fate attenzione a non cancellate assolutamente la cartella ~/.ssh in quanto contiene le chiavi. In caso contrario, il prompt SSH avrà esito negativo nel momento in cui provate ad accedere alla macchina da remoto. Avrete come risultato un avviso e il blocco automatico.
Come trasferire le chiavi SSH sul PC remoto
Ora che avete creato le chiavi SSH sia pubbliche che private, dovrete copiarle nel sistema da cui desiderate effettuare l’accesso. È importante ripetere questo processo su tutti i computer a cui intendete accedere tramite SSH. In caso contrario, dovrete per forza entrare utilizzando esclusivamente la password.
Detto ciò, per aggiungere le chiavi al sistema remoto, aprite il terminale dal computer host e digitate il comando ssh nomeutene@nomemacchinaremota mkdir -p .ssh. Dopo aver eseguito questo comando, verrà creata una cartella nascosta chiamata ~/.ssh all’interno della directory home della macchina remota in cui dovranno essere copiati i file delle chiavi SSH generati precedentemente.
A questo punto, per copiare i file delle chiavi SSH, eseguite il seguente comando dal computer host verso la macchina remota: cat .ssh/id_rsa.pub | ssh nomeutente@nomemacchinaremota ‘cat >> .ssh/authorized_keys’.
La copia richiederà alcuni secondi in base alla velocità della connessione ad Internet. Al termine, il PC remoto disporrà delle chiavi generate e adesso sarete in grado di accedere al PC host senza password.
Come fare backup delle chiavi SSH su Linux
Il modo migliore per eseguire un backup sicuro delle chiavi SSH è sfruttare la crittografia. In questo caso, vi consigliamo di utilizzare uno strumento chiamato GnuPG il quale permette di crittografare in maniera veloce, efficiente e semplice i file preferiti. Esso, inoltre, è incorporato nella maggior parte degli strumenti di crittografia di Linux ed è fra i più utilizzati per la crittografia dei file.
Se non è presente sul vostro computer, è possibile installare GnuPG aprendo il terminale e utilizzando l’apposito comando di installazione a seconda della distro in vostro possesso. Ad esempio, se avete Ubuntu, potete utilizzare il comando sudo apt install gpg.
Una volta che GPG è attivo e funzionante, bisogna avviare il processo di crittografia che consiste nella comprensione della directory ~/.ssh all’interno di un archivio tar. In questo modo non sarà necessario crittografare ogni singolo file presente nella cartella ~/.ssh. Per fare ciò, eseguite il comando tar -czvf ssh-stuff.tar.gz /home/nomeutente/.ssh.
Al termine della conversione, avviate il processo di crittografia con gpg -c ssh-stuff.tar.gz. A questo punto, potete decidere di cancellare la versione originale e sbloccata del file. In caso di bisogno, potete decodificare l’archivio di backup attraverso il comando gpg ssh-stuff.tar.gz.gpg.
Dubbi o problemi? Ti aiutiamo noi!
Se vuoi rimanere sempre aggiornato, iscriviti al nostro canale Telegram e seguici su Instagram. Se vuoi ricevere supporto per qualsiasi dubbio o problema, iscriviti alla nostra community Facebook.