Le password stanno diventando vulnerabili con l'ambiente di sicurezza informatica in continua evoluzione. Non più che mai, i sistemi stanno diventando inclini agli attacchi di forza bruta. Gli utenti stanno inoltre facilitando l'infiltrazione degli hacker nei loro sistemi proteggendo i sistemi con password deboli e spesso intuibili. L'autenticazione a 2 fattori è ormai una pratica comune e fornisce un ulteriore livello di protezione utilizzando i codici OTP per garantire che sia effettivamente l'utente ad accedere al sistema.
Un altro modo per proteggere il tuo server è configurare l'autenticazione SSH senza password sul tuo server. Questo utilizza l'autenticazione SSH a chiave pubblica in cui una coppia di chiavi SSH viene generata sul sistema locale. La coppia di chiavi è composta da una chiave SSH privata e una pubblica. La chiave privata rimane sul sistema locale mentre la chiave pubblica viene caricata sul sistema remoto. Durante l'autenticazione avviene uno scambio di chiavi tra la chiave pubblica salvata sul sistema remoto e la chiave privata sul sistema locale. Le connessioni successive sono così protette e non sarà richiesta alcuna password.
In questa guida, ti spiegheremo come configurare l'autenticazione SSH della password in 3 semplici passaggi.
Laboratorio di configurazione SSH senza password
A scopo dimostrativo, utilizzeremo la seguente configurazione del lab:
Local Linux system - 192.168.2.104
Remote Linux system - 192.168.2.108
Sarebbe prudente assicurarsi anche di poter accedere al sistema remoto dal sistema locale utilizzando l'autenticazione tramite password SSH.
Iniziamo!
Passaggio 1. Genera coppia di chiavi SSH
Immediatamente, genereremo una coppia di chiavi SSH che verrà archiviata nella home directory. Quindi, invoca ssh-keygen comando come mostrato. Qui stiamo creando una coppia di chiavi a 4096 bit.
$ ssh-keygen -b 4096
Accetta le impostazioni predefinite semplicemente premendo INVIO. Puoi trovare la coppia di chiavi SSH in ~/.ssh directory che è una directory nascosta nella tua cartella home.
Tanto per essere sicuri usa il comando ls per verificare la presenza delle chiavi SSH.
$ ls .ssh
La chiave privata è indicata da id_rsa mentre id_rsa.pub è la chiave pubblica. Si tratta di chiavi crittografiche crittografate. In seguito, copieremo la chiave pubblica sul sistema remoto.
Passaggio 2. Copia la coppia di chiavi SSH sul sistema remoto
Successivamente, è necessario copiare e salvare la chiave pubblica sul sistema Linux remoto. Perché stiamo facendo questo? Nell'autenticazione a chiave pubblica, avviene un handshake di autenticazione tra la chiave pubblica sul sistema remoto e la chiave privata residente sul sistema locale. Ciò garantisce che tutto il traffico successivo tra il sistema host locale e il sistema remoto sia crittografato.
Per copiare la chiave pubblica SSH, esegui ssh-copy-id comando come segue.
$ ssh-copy-id [email protected]
Nel nostro caso, questo sarà:
$ ssh-copy-id [email protected]
Per continuare a connetterti, digita "Sì" e premi INVIO. Successivamente, fornisci la password al sistema remoto per accedere e copiare la chiave pubblica SSH.
La chiave SSH pubblica viene aggiunta a un file univoco chiamato authorized_keys nella home directory dell'account utente a cui stai effettuando l'accesso. Il percorso completo di questo file è ~/.ssh/authorized_keys
Dopo aver copiato correttamente la chiave SSH, ora puoi accedere al sistema remoto utilizzando l'autenticazione con chiave pubblica come segue.
$ ssh [email protected]
Dallo snippet in basso, puoi vedere che abbiamo effettuato l'accesso al sistema remoto senza nemmeno che ci venga richiesta una password. Fantastico!
Come accennato in precedenza, la chiave pubblica viene salvata in ~/.ssh/authorized_keys percorso.
Passaggio 3. Disattiva l'autenticazione della password (opzionale)
Se desideri aumentare la sicurezza del tuo sistema remoto, potresti prendere in considerazione la possibilità di disabilitare l'autenticazione della password. In tal modo, ti assicuri di essere l'unico che può accedere al sistema utilizzando la chiave privata che si trova sul tuo sistema locale. La chiave dovrebbe essere sempre un top secret. Non condividerlo mai con nessuno per non compromettere il tuo sistema.
Sull'host remoto, apri l'accesso a /etc/sshd_config file a mostrato.
$ sudo vim /etc/sshd_config
Individua PasswordAuthentication parametro e impostarlo su no come mostrato.
Quindi, assicurati che l'autenticazione con chiave pubblica sia abilitata come mostrato.
Affinché le modifiche persistano, eseguire un riavvio del servizio SSH come segue.
$ sudo systemctl restart ssh
Per dimostrare che l'autenticazione della password è disabilitata, proveremo ad accedere al server utilizzando il client Putty SSH. Fornisci l'indirizzo del sistema remoto e premi "Apri"
Fornisci il nome utente remoto e premi INVIO. Questa volta, ottieni un'autenticazione poiché abbiamo disabilitato l'autenticazione della password.
Conclusione
L'autenticazione con chiave pubblica è un modo a prova di manomissione per connettere e rafforzare il tuo server. Elimina i vettori di attacco come gli attacchi con password di forza bruta che sono minacciosi quando il tuo sistema ha l'autenticazione della password.