Segui questa guida passo passo per configurare l'autenticazione basata su chiave SSH sul tuo server Ubuntu. Accedi in modo sicuro senza password e, facoltativamente, disabilita completamente l'autenticazione tramite password.
Segui attentamente ogni passaggio per configurare l'autenticazione basata su chiave SSH sul tuo server Ubuntu.
Esegui il seguente comando sulla tua macchina locale per generare una coppia di chiavi RSA (le versioni attuali di ssh-keygen utilizzano di default 3072 bit: usa -b 4096 per una chiave più sicura):
$ ssh-keygenQuando viene richiesto di specificare un percorso file, premere Invio per accettare quello predefinito ( ~/.ssh/id_rsa ). Facoltativamente, è possibile impostare una passphrase per un ulteriore livello di sicurezza.
Vengono creati due file: ~/.ssh/id_rsa (chiave privata - da tenere segreta) e ~/.ssh/id_rsa.pub (chiave pubblica - da inserire sul server).
Metodo 1 — ssh-copy-id (consigliato):
$ ssh-copy-id username@remote_hostInserisci la tua password quando richiesto. La chiave pubblica verrà aggiunta al file ~/.ssh/authorized_keys sul server.
Metodo 2 — tramite pipe SSH:
cat ~/.ssh/id_rsa.pub | ssh username@remote_host "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"Metodo 3 - manuale: visualizza la tua chiave pubblica con il cat ~/.ssh/id_rsa.pub , quindi aggiungi l'output al file ~/.ssh/authorized_keys sul server remoto.
Verifica che l'autenticazione basata su chiave funzioni collegandoti al tuo server:
$ ssh username@remote_hostSe hai impostato una passphrase al passaggio 1, ti verrà richiesto di inserirla. In caso contrario, accederai immediatamente senza alcuna richiesta di password.
Una volta verificato il corretto funzionamento dell'accesso basato su chiave, è possibile disabilitare l'autenticazione tramite password per proteggere il server dagli attacchi di forza bruta. Aprire il file di configurazione del demone SSH:
sudo nano /etc/ssh/sshd_configTrova PasswordAuthentication , rimuovi il commento dalla riga se necessario e impostala su no :
PasswordAuthentication noNelle versioni attuali di Ubuntu, sshd_config termina con la riga Include /etc/ssh/sshd_config.d/*.conf , e un file in quella directory può sovrascrivere la tua impostazione. Se la modifica non ha effetto, verifica la presenza della riga PasswordAuthentication yes in /etc/ssh/sshd_config.d/ e modificala lì.
Salva il file ( Ctrl+X , poi Y , poi Invio ) e riavvia SSH:
$ sudo systemctl restart sshApri un nuovo terminale e verifica di poter ancora connetterti prima di chiudere la sessione corrente.
Domande frequenti sulla configurazione dell'autenticazione tramite chiave SSH su Ubuntu.