Come impostare l’accesso SSH senza password

Secure Shell (SSH) è un protocollo di rete crittografico utilizzato per la connessione sicura tra un client e un server e supporta vari meccanismi di autenticazione. I due meccanismi più diffusi sono l’autenticazione basata su password e l’autenticazione basata su chiave pubblica.

In questo tutorial, ti mostreremo come impostare un’autenticazione basata su chiave SSH e come connettersi al tuo server Linux senza inserire una password.

Imposta l’accesso senza password SSH

Per impostare un accesso SSH senza password in Linux tutto ciò che devi fare è generare una chiave di autenticazione pubblica e aggiungerla al file host remoto.

~/.ssh/authorized_keys

I seguenti passaggi descriveranno il processo di configurazione dell’accesso SSH senza password:

1- Verificare la presenza di coppie di chiavi SSH esistenti.

Prima di generare una nuova coppia di chiavi SSH, verificare se si dispone già di una chiave SSH sul computer client perché non si desidera sovrascrivere le chiavi esistenti.

Eseguire il seguente comando ls per verificare se sono presenti chiavi SSH esistenti:

ls -al ~/.ssh/id_*.pub

Se ci sono chiavi esistenti, è possibile utilizzarle e saltare il passaggio successivo o eseguire il backup delle vecchie chiavi e generarne una nuova.

Se vedi o significa che non hai una chiave SSH e puoi procedere con il passaggio successivo e generarne una nuova.

No such file or directory no matches found

2 – Generare una nuova coppia di chiavi SSH.

Il seguente comando genererà una nuova coppia di chiavi SSH a 4096 bit con il tuo indirizzo email come commento:

ssh-keygen -t rsa -b 4096 -C "your_email@domain.com"

Premere per accettare il percorso e il nome del file predefiniti: Enter

Enter file in which to save the key (/home/yourusername/.ssh/id_rsa):

Successivamente, lo strumento ti chiederà di digitare una passphrase sicura. Se vuoi usare la passphrase dipende da te, se scegli di usare la passphrase otterrai un ulteriore livello di sicurezza. Nella maggior parte dei casi, gli sviluppatori e gli amministratori di sistema utilizzano SSH senza passphrase perché sono utili per processi completamente automatizzati. Se non si desidera utilizzare una passphrase basta premere .ssh-keygen Enter

Enter passphrase (empty for no passphrase):

L’intera interazione è simile alla seguente:

Per essere sicuri che le chiavi SSH vengano generate, è possibile elencare le nuove chiavi private e pubbliche con:

$ ls ~/.ssh/id_*
/home/yourusername/.ssh/id_rsa /home/yourusername/.ssh/id_rsa.pub

3 – Copiare la chiave pubblica

Ora che hai generato una coppia di chiavi SSH, per poter accedere al tuo server senza password devi copiare la chiave pubblica sul server che vuoi gestire.

Il modo più semplice per copiare la chiave pubblica sul server consiste nell’utilizzare un comando denominato . Sul terminale della macchina locale digitare:ssh-copy-id

$ ssh-copy-id remote_username@server_ip_address

Ti verrà richiesto di inserire la password:remote_username

remote_username@server_ip_address's password:

Una volta autenticato l’utente, la chiave pubblica verrà aggiunta al file utente remoto e la connessione verrà chiusa .authorized_keys

Se per qualche motivo l’utilità non è disponibile nel computer locale, è possibile utilizzare il comando seguente per copiare la chiave pubblica: ssh-copy-id

cat ~/.ssh/id_rsa.pub | ssh remote_username@server_ip_address "mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"

4 – Accedi al tuo server utilizzando le chiavi SSH

Dopo aver completato i passaggi precedenti, dovresti essere in grado di accedere al server remoto senza che venga richiesta una password.Per testarlo prova ad accedere al tuo server tramite SSH:

ssh remote_username@server_ip_address

Se tutto è andato bene, verrai connesso immediatamente.

Disabilitazione dell’autenticazione tramite password SSH

Per aggiungere un ulteriore livello di sicurezza al server è possibile disabilitare l’autenticazione con password per SSH.

Prima di disabilitare l’autenticazione della password SSH, assicurati di poter accedere al tuo server senza password e che l’utente con cui stai effettuando l’accesso abbia i privilegi sudo.

Le esercitazioni seguenti descrivono come configurare l’accesso sudo:

E1 – Accedi al tuo server remoto con chiavi SSH, sia come utente con privilegi sudo o root:

$ ssh sudo_user@server_ip_address

E2 – Aprire il file di configurazione SSH , cercare le seguenti direttive e modificarle come segue: /etc/ssh/sshd_config

File: /etc/ssh/sshd_config
PasswordAuthentication no
ChallengeResponseAuthentication no
UsePAM no

Al termine, salvare il file e riavviare il servizio SSH.

Sui server Ubuntu o Debian, eseguire il seguente comando:

$sudo systemctl restart ssh

Sui server CentOS o Fedora, eseguire il seguente comando:

$ sudo systemctl restart sshd
Banner per il consenso ai cookie di Real Cookie Banner