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 16.04.
Esegui il seguente comando sulla tua macchina locale per generare una coppia di chiavi RSA a 2048 bit (usa -b 4096 per una chiave più sicura a 4096 bit):
$ ssh-keygen Quando 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_host Inserisci 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_config Trova PasswordAuthentication , rimuovi il commento dalla riga se necessario e impostala su no :
PasswordAuthentication noSalva 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.