GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Come configurare l'autenticazione SSH senza password su Linux

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.


Ubuntu
  1. Come impostare o modificare il nome host del sistema in Linux

  2. Come configurare l'autenticazione basata su chiave SSH in Linux

  3. Come impostare le chiavi SSH

  4. Come configurare le chiavi SSH per l'accesso ssh "senza password" in Linux

  5. Come funziona SSH senza password in Linux / UNIX

Come impostare o modificare il nome host in Linux

Come creare una passphrase chiave SSH in Linux

Come configurare la chiave pubblica e privata SSH in Linux

Come configurare la chiave SSH su un server Plesk

Come configurare le chiavi SSH su Debian 11 Linux

Come generare e utilizzare la chiave SSH nel sistema Linux?