Come impostare una chiave SSH su Linux

SSH è una grande tecnologia; puoi usarlo per nascondere il traffico VPN con esso, proteggere la tua connessione ai siti web e altro ancora. L’unico problema è che ogni volta che provi ad accedere a una macchina remota, devi inserire la tua password e questo può essere noioso. Se sei uno sviluppatore che cerca di connettersi a molte macchine su SSH contemporaneamente con uno script Bash, o solo qualcuno che usa Secure Shell ed è stanco di inserire password, c’è una soluzione: SSH senza password. Questo processo implica la generazione di una chiave SSH sicura sulla macchina host e la condivisione come un modo per accedere al PC. Ciò consentirà a chiunque abbia la chiave di accedere, anche se non conosce la password. Ecco come farlo funzionare.

Cosa sono le chiavi SSH?

Una chiave SSH è un file di identificazione univoco utilizzato con Secure Shell. Lo scopo di queste chiavi è fornire un’identità univoca all’utente e contrassegnarli come “attendibili” al momento del login. Queste chiavi stesse sono più che file che dimostrano l’identità di qualcuno. In effetti, SSH consente agli utenti di accedere con una chiave anziché con una password. Significa che, invece di essere costretti a inserire una password ogni volta che accedi tramite SSH, usi la chiave SSH.

La chiave SSH è collocata da qualche parte in modo sicuro sulla tua installazione Linux e da lì puoi accedere alla macchina remota quanto vuoi senza password.

Generazione di chiavi SSH sicure

La generazione di una chiave SSH sicura richiede innanzitutto che SSH sia attivo e in esecuzione. Comprendi che questo non significa necessariamente che devi avere un server SSH. Solo che gli strumenti e le tecnologie SSH di base sono in esecuzione sul tuo PC Linux. Non sei sicuro di come configurare SSH? Segui la nostra guida qui.

Genera sempre le chiavi SSH sul sistema che ospita il server SSH. Non provare a generarli sul server che non ospita una sessione SSH e copiarli sulla macchina host SSH. Non funzionerà.

Per avviare il processo di generazione delle chiavi, apri un terminale. All’interno della finestra del terminale, esegui:

ssh-keygen -t rsa

L’esecuzione di ssh-keygen stamperà “Generating public / private rsa key pair”. Ciò significa che il sistema ti sta generando sia una chiave pubblica che una chiave privata da utilizzare. Le chiavi pubbliche sono quelle che chiunque può usare e dovresti riuscire a distribuirle. Una chiave privata, d’altra parte, è qualcosa che non dovresti mai condividere con nessuno. Da qui il nome “privato”.

Le chiavi si salveranno da sole su /home/username/.ssh/id_rsa.

Nota: NON CANCELLARE la cartella ~ / .ssh, poiché contiene le tue chiavi. Se manometti questa cartella in qualsiasi modo e poi provi ad accedere a questa macchina da remoto, il prompt SSH fallirà. Inoltre stamperà un avviso e ti bloccherà.

Chiavi SSH sulla macchina remota

Ora che le chiavi SSH (sia pubbliche che private) sono state create e pronte per l’uso, dovrai copiarle nel sistema da cui stai cercando di accedere. È importante che tu ripeta questo processo su tutte le macchine su cui prevedi di accedere tramite SSH. Altrimenti, quelli che non hanno la chiave dovranno accedere utilizzando il metodo della password.

Per aggiungere le chiavi al sistema remoto, segui questo esempio. Assicurati di farlo dalla macchina host su SSH.

ssh username@remote-host-name mkdir -p .ssh

L’esecuzione di questo comando ssh creerà una cartella ~ / .ssh nascosta nella directory home della macchina remota (con l’utente che è stato utilizzato per accedere). Questa cartella è importante, poiché è qui che copieremo i file della chiave SSH appena generati.

Per copiare i file delle chiavi SSH, esegui ancora un altro comando dalla macchina host SSH alla macchina remota che necessita delle chiavi:

cat .ssh/id_rsa.pub | ssh username@remote-host-name 'cat >> .ssh/authorized_keys'

La copia richiederà alcuni secondi, a seconda della velocità della rete. Al termine, il PC remoto avrà le chiavi generate e sarà in grado di accedere al PC host SSH senza password.

Backup delle chiavi SSH

Le chiavi SSH sono cose utili e ognuna è unica. È per questo motivo che sostenerli è la migliore linea d’azione. Il problema è che se lo salvi altrove qualcuno potrebbe trovare la tua chiave SSH, conservarla e usarla per se stesso. Quindi la domanda è: qual è un buon modo per eseguire il backup in modo sicuro di una chiave SSH? Crittografia.

Il modo più veloce, più efficiente (e più semplice) per crittografare è usare GnuPG. Lo strumento stesso è integrato nella maggior parte degli strumenti di crittografia già su Linux ed è il punto di riferimento quando viene visualizzata la crittografia dei file. Per installare GnuPG, apri un terminale e cerca nel tuo gestore di pacchetti “gpg”. Il programma dovrebbe essere facile da trovare, anche su distribuzioni Linux molto oscure.

Una volta che GPG è attivo e in esecuzione, avvia il processo di crittografia comprimendo la directory ~ / .ssh nel file di archivio tar. In questo modo non sarà necessario crittografare individualmente ogni singolo file nella cartella ~ / .ssh.

tar -czvf ssh-stuff.tar.gz /home/username/.ssh

Al termine della compressione, avvia il processo di crittografia.

Nota: prima di crittografare, eseguire gpg nel terminale per generare un nuovo portachiavi.

gpg -c ssh-stuff.tar.gz

Quando il processo di crittografia è completo, GnuPG metterà in uscita un file con l’etichetta “ssh-stuff.tar.gz.gpg”. Sentiti libero di eliminare la versione originale e sbloccata del file. Per decrittografare l’archivio di backup, procedi come segue:

gpg ssh-stuff.tar.gz.gpg