Prendi sul serio la sicurezza informatica e utilizza le chiavi SSH per accedere agli accessi remoti. Sono un modo più sicuro per connettersi rispetto alle password. Ti mostriamo come generare, installare e utilizzare le chiavi SSH in Linux.
Sommario:
Cosa c’è di sbagliato con le password?
Secure Shell (SSH) è il protocollo crittografato utilizzato per accedere agli account utente su computer remoti Linux o Unix. In genere, tali account utente vengono protetti tramite password. Quando si accede a un computer remoto, è necessario fornire il nome utente e la password per l’account a cui si accede.
Le password sono il mezzo più comune per proteggere l’accesso alle risorse di elaborazione. Nonostante ciò, la sicurezza basata su password ha i suoi difetti. Le persone scelgono password deboli, condividono password, usano la stessa password su più sistemi e così via.
Le chiavi SSH sono molto più sicure e, una volta configurate, sono facili da usare quanto le password.
Cosa rende sicure le chiavi SSH?
Le chiavi SSH vengono create e utilizzate in coppia. Le due chiavi sono collegate e crittograficamente sicure. Una è la tua chiave pubblica e l’altra è la tua chiave privata. Sono legati al tuo account utente. Se più utenti su un singolo computer utilizzano chiavi SSH, ciascuno riceverà la propria coppia di chiavi.
La tua chiave privata viene installata nella tua cartella Inizio (di solito) e la chiave pubblica viene installata sul computer remoto, o sui computer, a cui dovrai accedere.
La tua chiave privata deve essere tenuta al sicuro. Se è accessibile ad altri, ti trovi nella stessa posizione come se avessero scoperto la tua password. Una precauzione sensata e altamente raccomandata è che la tua chiave privata venga crittografata sul tuo computer con un robusto frase d’accesso.
La chiave pubblica può essere condivisa liberamente senza alcun compromesso per la tua sicurezza. Non è possibile determinare quale sia la chiave privata da un esame della chiave pubblica. La chiave privata può crittografare i messaggi che solo la chiave privata può decrittografare.
Quando effettui una richiesta di connessione, il computer remoto utilizza la sua copia della tua chiave pubblica per creare un messaggio crittografato. Il messaggio contiene un ID di sessione e altri metadati. Solo il computer in possesso della chiave privata, il tuo computer, può decrittografare questo messaggio.
Il tuo computer accede alla tua chiave privata e decrittografa il messaggio. Quindi invia il proprio messaggio crittografato al computer remoto. Tra le altre cose, questo messaggio crittografato contiene l’ID di sessione ricevuto dal computer remoto.
Il computer remoto ora sa che devi essere chi dici di essere perché solo la tua chiave privata potrebbe estrarre l’ID di sessione dal messaggio che ha inviato al tuo computer.
Assicurati di poter accedere al computer remoto
Assicurati di poterti connettere in remoto e accedere al computer remoto. Ciò dimostra che il nome utente e la password hanno un account valido configurato sul computer remoto e che le credenziali sono corrette.
Non provare a fare nulla con le chiavi SSH finché non avrai verificato che puoi utilizzare SSH con password per connetterti al computer di destinazione.
In questo esempio, una persona con un account utente chiamato dave ha effettuato l’accesso a un computer chiamato howtogeek. Si collegheranno a un altro computer chiamato Sulaco.
Inseriscono il seguente comando:
ssh dave@sulaco
Viene richiesta la password, la immettono e si connettono a Sulaco. Il loro prompt della riga di comando cambia per confermarlo.
Questa è tutta la conferma di cui abbiamo bisogno. Quindi l’utente dave può disconnettersi da Sulaco con il comando exit:
exit
Ricevono il messaggio di disconnessione e il prompt della riga di comando torna a dave @ howtogeek.
Creazione di una coppia di chiavi SSH
Queste istruzioni sono state testate sulle distribuzioni Ubuntu, Fedora e Manjaro di Linux. In tutti i casi il processo era identico e non era necessario installare alcun nuovo software su nessuna delle macchine di prova.
Per generare le tue chiavi SSH, digita il seguente comando:
ssh-keygen
Inizia il processo di generazione. Ti verrà chiesto dove desideri memorizzare le tue chiavi SSH. Premere il tasto Invio per accettare la posizione predefinita. Le autorizzazioni sulla cartella la proteggeranno solo per il tuo uso.
Ti verrà ora chiesta una passphrase. Ti consigliamo vivamente di inserire una passphrase qui. E ricorda di cosa si tratta! Puoi premere Invio per non avere passphrase, ma questa non è una buona idea. Una passphrase composta da tre o quattro parole non collegate, messe insieme, creerà una passphrase molto robusta.
Ti verrà chiesto di inserire ancora una volta la stessa passphrase per verificare di aver digitato ciò che pensavi di aver digitato.
Le chiavi SSH vengono generate e archiviate per te.
È possibile ignorare il “randomart” visualizzato. Alcuni computer remoti potrebbero mostrarti la loro arte casuale ogni volta che ti connetti. L’idea è che riconoscerai se la grafica casuale cambia e sarai sospettoso della connessione perché significa che le chiavi SSH per quel server sono state alterate.
Installazione della chiave pubblica
Dobbiamo installare la tua chiave pubblica su Sulaco, il computer remoto, in modo che sappia che la chiave pubblica ti appartiene.
Lo facciamo usando il comando ssh-copy-id. Questo comando effettua una connessione al computer remoto come il normale comando ssh, ma invece di consentire l’accesso, trasferisce la chiave SSH pubblica.
ssh-copy-id dave@sulaco
Anche se non stai accedendo al computer remoto, devi comunque autenticarti utilizzando una password. Il computer remoto deve identificare a quale account utente appartiene la nuova chiave SSH.
Nota che la password che devi fornire qui è la password dell’account utente a cui stai effettuando l’accesso. Questa non è la passphrase che hai appena creato.
Quando la password è stata verificata, ssh-copy-id trasferisce la tua chiave pubblica al computer remoto.
Si torna al prompt dei comandi del computer. Non sei lasciato connesso al computer remoto.
Connessione tramite chiavi SSH
Seguiamo il suggerimento e proviamo a connetterci al computer remoto.
ssh dave@sulaco
Poiché il processo di connessione richiederà l’accesso alla tua chiave privata e poiché hai protetto le tue chiavi SSH dietro una passphrase, dovrai fornire la tua passphrase in modo che la connessione possa procedere.
Inserisci la tua passphrase e fai clic sul pulsante Sblocca.
Una volta inserita la passphrase in una sessione terminale, non sarà necessario inserirla di nuovo finché la finestra del terminale è aperta. Puoi connetterti e disconnetterti da tutte le sessioni remote che desideri, senza inserire nuovamente la tua passphrase.
Puoi selezionare la casella di controllo per l’opzione “Sblocca automaticamente questa chiave ogni volta che effettuo l’accesso”, ma ridurrà la tua sicurezza. Se lasci il tuo computer incustodito, chiunque può connettersi ai computer remoti che hanno la tua chiave pubblica.
Una volta inserita la passphrase, sarai connesso al computer remoto.
Per verificare ancora una volta il processo end to end, disconnettersi con il comando exit e riconnettersi al computer remoto dalla stessa finestra del terminale.
ssh dave@sulaco
Sarai connesso al computer remoto senza bisogno di password o passphrase.
Nessuna password, ma maggiore sicurezza
Gli esperti di sicurezza informatica parlano di una cosa chiamata attrito di sicurezza. Questo è il piccolo dolore che devi sopportare per ottenere il guadagno di sicurezza aggiuntiva. Di solito sono necessari uno o due passaggi aggiuntivi per adottare un metodo di lavoro più sicuro. E alla maggior parte delle persone non piace. In realtà preferiscono una sicurezza inferiore e la mancanza di attrito. Questa è la natura umana.
Con le chiavi SSH, ottieni maggiore sicurezza e maggiore comodità. Questo è decisamente vantaggioso per tutti.