
In questo tutorial spiegherò come connettersi a un server/computer Linux tramite SSH senza password utilizzando una coppia di chiavi (privata/pubblica).
Sommario
Genera la coppia di chiavi con ssh-keygen
Per generare una coppia di chiavi è necessario disporre di un client SSH. È possibile farlo da Windows 10 o Linux.
In questo tutorial ho utilizzato il mio computer Windows 10.
Per generare una coppia di chiavi, immettere il comando seguente:
ssh-keygen -b 4096

-b 4096 consente di generare una chiave a 4096 bit, per impostazione predefinita è 2048
Per prima cosa, il generatore ti chiede di indicare il file in cui è memorizzato, di default è il nome del file id_rsa. Per utilizzare il valore predefinito, premere Invio.

In caso di dubbi, controlla prima se nella cartella user/.ssh del tuo computer è presente una coppia di chiavi, poiché questa verrà sovrascritta.
Quindi puoi inserire una password per proteggere la chiave privata; lascia vuoto il campo per non avere alcuna password.

Se inserisci una password, questa ti verrà richiesta ogni volta che effettuerai l’accesso. In un ambiente critico, ti consiglio di impostare una password.
Dopo aver convalidato la password, viene generata la chiave:

Poi andiamo nella cartella .ssh e ne visualizziamo il contenuto, troviamo i file della nostra coppia di chiavi.

Il file id_rsa è la chiave privata, quella che deve rimanere sul tuo computer, mentre il file id_rsa.pub è la chiave pubblica che installeremo sul/sui server SSH per connetterci ad esso.
Ti consiglio vivamente di effettuare il backup della tua coppia di chiavi.
Configurare il server SSH
Ora che abbiamo una coppia di chiavi, configureremo il nostro server SSH per connetterci ad essa tramite una coppia di chiavi.
Infatti, configureremo principalmente la nostra chiave pubblica su un account utente per connetterci senza password (rdrit).
Ovviamente, non lo facciamo sull’account root…
Sul server Linux, vai alla cartella home dell’utente con cui vuoi effettuare l’accesso.
Controllare se la cartella .ssh è presente (ll).

Se la cartella non esiste, creala:
mkdir .ssh
Nella cartella .ssh, se presente, verificare se esiste il file authorized_keys. Altrimenti devi crearlo:
touch .ssh/authorized_keys
Quindi modifichiamo il file authorized_keys con nano, ad esempio, nel quale copieremo la chiave pubblica.
nano .ssh/authorized_keys
Copier la clé publique qui se trouve dans le fichier id_rsa.pub.

Uscire dall’editor e salvare il file.
D’ora in poi potrai connetterti dal tuo computer al computer Linux tramite SSH senza password.
ssh utilisateur@ip_serveur
Disabilitare l’autenticazione tramite password sul server SSH
Questo passaggio è facoltativo, ma per aumentare il livello di sicurezza del server, un attacco brute force con una chiave privata a 4096 bit è molto dispendioso in termini di tempo e difficile da eseguire.
Prima di effettuare questa operazione è necessario prendere una precauzione molto importante, ovvero un accesso al computer diverso da SSH, ovvero un accesso di tipo KVM per un VPS a noleggio su Internet oppure un accesso alle console di tipo Hyper-V/VMWare oppure, per un server fisico, un accesso fisico o tramite ILO/Idrac.
Nel caso di un server fisico in affitto (Scaleway, OVH, ecc.), i server entry-level non dispongono di accesso KVM; Se perdi la tua chiave pubblica o privata, sarà impossibile riprenderne il controllo.
Modificare il file di configurazione del server SSH
sudo nano /etc/ssh/sshd_config
Cercare la direttiva PasswordAuthentication, se è commentata, rimuoverla dal commento e impostare il valore su no. Se non esiste, crea la riga.

Salvare il file e riavviare il servizio ssh per applicare la configurazione.
sudo systemctl restart sshd
Ora non è più possibile effettuare l’accesso con una password.
Utilizzare sudo senza password
Nell’ultima parte di questo tutorial spiegherò come evitare che venga richiesta la password quando si utilizza sudo.
Questa manipolazione aumenta l’esposizione del tuo server, soprattutto se la tua chiave privata viene rubata.
Aprire il file /etc/sudoers con nano.
sudo visudo /etc/sudoers
Alla fine aggiungi la riga sottostante, adattandola al tuo utente:
utilisateur ALL=(ALL) NOPASSWD:ALL

Salvare il file.
Ora puoi eseguire comandi sudo senza che ti venga richiesta la password.