Introduzione
Secure Shell (SSH) è un protocollo di rete crittografica utilizzato per una connessione sicura tra un client e un server e supporta vari meccanismi di autenticazione.
I due meccanismi più popolari sono l'autenticazione basata su password e l'autenticazione basata su chiave pubblica. L'uso delle chiavi SSH è più sicuro e conveniente dell'autenticazione con password tradizionale.
In questo tutorial, descriveremo come generare chiavi SSH su sistemi Debian 10. Ti mostreremo anche come impostare un'autenticazione basata su chiave SSH e collegarti ai tuoi server Linux remoti senza inserire una password.
Creare chiavi SSH su Debian
Prima di generare una nuova coppia di chiavi SSH, verificare la presenza di chiavi SSH esistenti sul proprio computer client Debian. Puoi farlo eseguendo il seguente comando ls:
ls -l ~/.ssh/id_*.pub
Se l'output del comando sopra contiene qualcosa di simile No such file or directory
o no matches found
significa che non hai chiavi SSH e puoi continuare con il passaggio successivo e generare una nuova coppia di chiavi SSH.
Se sono presenti chiavi esistenti, è possibile utilizzare quelle e saltare il passaggio successivo o eseguire il backup delle vecchie chiavi e generarne di nuove.
Inizia generando una nuova coppia di chiavi SSH a 4096 bit con il tuo indirizzo e-mail come commento usando il seguente comando:
ssh-keygen -t rsa -b 4096 -C "[email protected]"
L'output sarà simile al seguente:
Enter file in which to save the key (/home/yourusername/.ssh/id_rsa):
Premere Enter
per accettare il percorso e il nome file predefiniti.
Successivamente, ti verrà richiesto di digitare una passphrase sicura. Se vuoi usare la passphrase dipende da te. Con passphrase, viene aggiunto un ulteriore livello di sicurezza alla chiave.
Enter passphrase (empty for no passphrase):
Se non si desidera utilizzare la passphrase, premere Enter
Per verificare che sia stata generata la coppia di chiavi SSH, digitare:
ls ~/.ssh/id_*
L'output dovrebbe assomigliare a questo:
/home/yourusername/.ssh/id_rsa /home/yourusername/.ssh/id_rsa.pub
Copiare la chiave pubblica sul server
Ora che hai la tua coppia di chiavi SSH, il passo successivo è copiare la chiave pubblica sul server che vuoi gestire.
Il modo più semplice e consigliato per copiare la chiave pubblica sul server remoto è utilizzare lo strumento ssh-copy-id
.
Sul terminale della macchina locale sintonizzare il seguente comando:
ssh-copy-id remote_username@server_ip_address
Ti verrà richiesto di inserire la password del tuo nome utente:
remote_username@server_ip_address's password:
Una volta autenticato l'utente, la chiave pubblica ~/.ssh/id_rsa.pub
verrà aggiunta al file ~/.ssh/authorized_keys
dell'utente remoto e la connessione verrà chiusa.
Number of key(s) added: 1
Now try logging into the machine, with: "ssh 'username@server_ip_address'"
and check to make sure that only the key(s) you wanted were added.
Se l'utilità ssh-copy-id
non è disponibile sul computer locale, è possibile utilizzare il comando seguente per copiare la chiave pubblica:
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"
Accedere al server usando le chiavi SSH
A questo punto, dovresti essere in grado di accedere al server remoto senza che ti venga richiesta una password.
Per testarlo, prova a connetterti al server tramite SSH:
ssh remote_username@server_ip_address
Se non hai impostato una passphrase, accedi immediatamente. Altrimenti, ti verrà richiesto di inserire la passphrase.
Disabilitare l'autenticazione con password
Per aggiungere un ulteriore livello di sicurezza al server è possibile disabilitare l'autenticazione della password con SSH.
Prima di disabilitare l'autenticazione con password SSH, assicurati di poter accedere al tuo server senza password e l'utente con il quale accedi ha i privilegi di sudo.
Accedi al tuo server remoto:
ssh sudo_user@server_ip_address
Apri il file di configurazione SSH /etc/ssh/sshd_config
:
sudo nano /etc/ssh/sshd_config
Cerca le seguenti direttive e modifica come segue:
PasswordAuthentication no
ChallengeResponseAuthentication no
UsePAM no
Salvare e chiudere il file premendo CTRL+X, seguito da Y per salvare le modifiche e quindi ENTER se stai utilizzando nano.
Riavviare il servizio SSH utilizzando il seguente comando:
sudo systemctl restart ssh
A questo punto, l'autenticazione basata su password è disabilitata.
Conclusione
In questo tutorial, hai imparato come generare una nuova coppia di chiavi SSH e come impostare un'autenticazione basata su chiave SSH. È possibile aggiungere la stessa chiave a più server remoti.
Ti abbiamo anche mostrato come disabilitare l'autenticazione con password SSH e aggiungere un ulteriore livello di sicurezza al tuo server.
Per impostazione predefinita, SSH è in ascolto sulla porta 22. La modifica della porta SSH predefinita ridurrà il rischio di attacchi automatici.
Se ci si collega regolarmente a più sistemi, è possibile semplificare il flusso di lavoro definendo tutte le connessioni nel file di configurazione SSH.