
Prendi sul serio la sicurezza informatica e usa le chiavi SSH per accedere agli accessi remoti. Sono un modo più sicuro per connettersi rispetto alle password. Ti mostriamo come generare, installare e usare le chiavi SSH in Linux.
Cosa c'è che non va nelle password?
Secure shell (SSH) è il protocollo crittografato utilizzato per accedere agli account utente su computer remoti simili a Linux o Unix. In genere tali account utente sono protetti tramite password. Quando si accede a un computer remoto, è necessario fornire il nome utente e la password per l'account a cui si sta effettuando l'accesso.
Le password sono il mezzo più comune per garantire l'accesso alle risorse informatiche. 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 impostate, sono altrettanto facili da usare come 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. Uno è la tua chiave pubblica e l'altro è la tua chiave privata. Sono legati al tuo account utente. Se più utenti su un singolo computer utilizzano chiavi SSH, riceveranno ciascuno la propria coppia di chiavi.
La chiave privata è installata nella cartella principale (in genere) e la chiave pubblica è installata sul computer remoto o sui computer a cui sarà necessario accedere.
La tua chiave privata deve essere protetta. Se è accessibile ad altri, sei nella stessa posizione come se avessero scoperto la tua password. Una precauzione ragionevole, e altamente raccomandata, è la crittografia della chiave privata sul computer con una passphrase affidabile.
La chiave pubblica può essere condivisa liberamente senza alcun compromesso per la tua sicurezza. Non è possibile determinare quale sia la chiave privata dall'esame della chiave pubblica. La chiave privata può crittografare i messaggi che solo la chiave privata può decrittografare.
Quando si effettua una richiesta di connessione, il computer remoto utilizza la propria copia della chiave pubblica per creare un messaggio crittografato. Il messaggio contiene un ID sessione e altri metadati. Solo il computer in possesso della chiave privata, il tuo computer, può decrittografare questo messaggio.
Il computer accede alla chiave privata e decodifica il messaggio. Invia quindi 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 quello che 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
Assicurarsi di poter connettersi in remoto e accedere al computer remoto. Ciò dimostra che il nome utente e la password hanno un account valido impostato sul computer remoto e che le credenziali sono corrette.
Non provare a fare nulla con le chiavi SSH fino a quando non avrai verificato che puoi utilizzare SSH con password per connetterti al computer di destinazione.
In questo esempio, una persona con un account utente ha chiamato dave è collegato a un computer chiamato howtogeek . Si collegheranno a un altro computer chiamato Sulaco.
Immettono il seguente comando:
ssh dave@sulaco

Viene loro richiesta la password, la inseriscono e sono collegati a Sulaco. Il loro prompt della riga di comando cambia per confermarlo.

Questa è tutta la conferma di cui abbiamo bisogno. Quindi utente dave può disconnettersi da Sulaco con il exit comando:
exit

Ricevono il messaggio di disconnessione e il loro prompt della riga di comando torna a dave@howtogeek.
RELAZIONATO: Come connettersi a un server SSH da Windows, macOS o Linux
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 chiavi SSH, digitare il comando seguente:
ssh-keygen

Inizia il processo di generazione. Ti verrà chiesto dove desideri conservare le tue chiavi SSH. Premere il tasto Invio per accettare la posizione predefinita. Le autorizzazioni sulla cartella lo proteggeranno solo per il tuo uso.

Ti verrà ora chiesto un passphrase. Ti consigliamo vivamente di inserire una passphrase qui. E ricorda di cosa si tratta! Puoi premere Invio per non avere la passphrase, ma questa non è una buona idea. Una passphrase composta da tre o quattro parole non collegate, messe insieme renderà 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 sono generate e memorizzate per te.

È possibile ignorare la “randomart” che viene visualizzata. Alcuni computer remoti potrebbero mostrarti la loro arte casuale ogni volta che ti connetti. L'idea è che riconoscerai se l'arte casuale cambia e sarai sospettoso della connessione perché significa che le chiavi SSH per quel server sono state modificate.
Installazione della chiave pubblica
Dobbiamo installare la tua chiave pubblica su Sulaco , il computer remoto, in modo che sappia che la chiave pubblica appartiene a te.
Lo facciamo usando il ssh-copy-id comando. Questo comando stabilisce una connessione al computer remoto come il normale ssh comando, ma invece di consentire l'accesso, trasferisce la chiave SSH pubblica.
ssh-copy-id dave@sulaco

Sebbene non si stia effettuando l'accesso al computer remoto, è comunque necessario autenticarsi utilizzando una password. Il computer remoto deve identificare a quale account utente appartiene la nuova chiave SSH.
Si noti che la password che è necessario fornire qui è la password per l'account utente a cui si sta effettuando l'accesso. Questo è non la passphrase che hai appena creato.

Quando la password è stata verificata, ssh-copy-id trasferisce la chiave pubblica sul computer remoto.
Si ritorna al prompt dei comandi del computer. Non si rimane connessi al computer remoto.

Connessione tramite i tasti 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 passphrase in modo che la connessione possa procedere.

Inserisci la tua passphrase e fai clic sul pulsante Unlock.
Dopo aver inserito la passphrase in una sessione terminale, non sarà necessario inserirla di nuovo per tutto il tempo in cui la finestra del terminale è aperta. È possibile connettersi e disconnettersi da tutte le sessioni remote che si desidera, senza immettere nuovamente la passphrase.
È possibile selezionare l'opzione “Sblocca automaticamente questa chiave ogni volta che ho effettuato l'accesso”, ma ciò ridurrà la sicurezza. Se si lascia il computer incustodito, chiunque può effettuare connessioni ai computer remoti che dispongono della chiave pubblica.
Dopo aver inserito la passphrase, si è connessi al computer remoto.

Per verificare nuovamente il processo end to end, disconnettersi con exit comando e riconnettersi al computer remoto dalla stessa finestra del terminale.
ssh dave@sulaco

Sarai connesso al computer remoto senza la necessità di password o passphrase.
Nessuna password, ma sicurezza avanzata
Gli esperti di sicurezza informatica parlano di una cosa chiamata attrito per la sicurezza. Questo è il dolore minore che devi sopportare per ottenere la sicurezza aggiuntiva. Di solito sono necessari alcuni 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 una maggiore sicurezza e una maggiore praticità. Questa è una vittoria vincente.
