Come creare chiavi SSH
Cosa sono le chiavi SSH
Le chiavi SSH forniscono un modo più sicuro per accedere ad un virtual private server con SSH rispetto al solo utilizzo di una password. Una password può essere violata tramite un attacco a forza bruta, mentre le chiavi SSH sono quasi impossibili da decifrare utilizzando solamente la forza bruta. Generare una coppia di chiavi vi mette a disposizione due lunghe stringhe di caratteri: una chiave pubblica ed una privata. Potete impostare la chiave pubblica in qualsiasi server e poi accedervi facendovi connettere con un client con la chiave privata già configurata. Quando le due chiavi corrispondono si avrà accesso al sistema senza il bisogno di una password. Potete inoltre aumentare maggiormente la sicurezza proteggendo la chiave privata con una passphrase.
Primo Passo – Creare una coppia di chiavi RSA
Il primo passo è creare una coppia di chiavi nel computer client (probabilmente il vostro computer):
ssh-keygen -t rsa
Secondo Passo – Impostare le chiavi e la passphrase
Una volta eseguito il comando per la creazione delle chiavi vi verranno chieste le seguenti informazioni:
Enter file in which to save the key (/home/demo/.ssh/id_rsa):
Qui potete premere Invio e salvare il file nella cartella utente (in questo caso demo è il nome utente).
Enter passphrase (empty for no passphrase):
Sta a voi decidere se usare una passphrase. Utilizzare una passphrase ha i suoi vantaggi: la sicurezza della chiave, indipendentemente da come sia cifrata, dipende dal fatto che non è visibile pubblicamente. Nel caso una chiave privata protetta con una passphrase finisse nelle mani di utenti non autorizzati, essi non saranno in grado di accedere agli account associati prima di aver trovato la passphrase, fornendo maggior tempo all’utente vittima. L’unico lato negativo nell’avere una passphrase è il doverla inserire ogni volta che si utilizza la coppia di chiavi.
Il processo di generazione delle chiavi apparirà nel seguente modo:
ssh-keygen -t rsa Generating public/private rsa key pair. Enter file in which to save the key (/home/demo/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/demo/.ssh/id_rsa. Your public key has been saved in /home/demo/.ssh/id_rsa.pub. The key fingerprint is: 4a:dd:0a:c6:35:4e:3f:ed:27:38:8c:74:44:4d:93:67 demo@a The key's randomart image is: +--[ RSA 2048]----+ | .oo. | | . o.E | | + . o | | . = = . | | = S = . | | o + = + | | . o + o . | | . o | | | +-----------------+
In questo caso la chiave pubblica si trova in /home/demo/.ssh/id_rsa.pub. La chiave privata (quella identificativa) si trova in in /home/demo/.ssh/id_rsa.
Terzo Passo – Fare una copia della chiave pubblica
Una volta che la coppia di chiavi è stata generata è il momento di inserire la chiave pubblica nel server virtuale che andremo ad usare.
È possibile copiare la chiave pubblica in un file authorized_keys in un altro computer utilizzando il comando ssh-copy-id. Ricordatevi di sostiture il nome utente e l’indirizzo IP:
ssh-copy-id user@123.45.56.78
Oppure, avete la possibilità di inserirla nelle chiavi usando SSH:
cat ~/.ssh/id_rsa.pub | ssh user@123.45.56.78 "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
Ad ogni modo, con un comando o con l’altro dovreste visualizzare qualcosa tipo:
The authenticity of host '12.34.56.78 (12.34.56.78)' can't be established. RSA key fingerprint is b1:2d:33:67:ce:35:4d:5f:f3:a8:cd:c0:c4:48:86:12. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '12.34.56.78' (RSA) to the list of known hosts. user@12.34.56.78's password: Now try logging into the machine, with "ssh 'user@12.34.56.78'", and check in: ~/.ssh/authorized_keys to make sure we haven't added extra keys that you weren't expecting.
Ora potete procedere e accedere su user@12.34.56.78 senza che vi venga richiesta una password. Nel caso che abbiate impostato una passphrase, vi verrà chiesto di inserirla (dovrete inserirla ogni volta che tenterete di accedere).
Quarto Passo (Opzionale) – Disattivare la password di accesso root
Una volta che avete copiato le vostre chiavi SSH nel vostro server e vi siete assicurati che potete accedere solo tramite esse, potete proseguire limitando l’accesso root solo tramite le chiavi SSH.
Per farlo, aprite il file di configurazione di SSH:
sudo nano /etc/ssh/sshd_config
Al suo interno cercate la riga in cui è presente PermitRootLogin e modificatela in modo che gli utenti possano accedervi solo usando le chiavi SSH:
PermitRootLogin without-password
Applicate i cambiamenti:
reload ssh
Funzioni aggiuntive di Digital Ocean
Il pannello di controllo di Digital Ocean permette di aggiungere chiavi pubbliche alle vostre nuove droplet [le VPS di DigitalOcean, NdT] al momento della creazione. Potete generare le chiavi SSH in una comoda postazione, come un computer, e caricare la chiave pubblica nella sezione chiavi SSH.
Quindi, quando create una nuova VPS, potete scegliere se inserire la chiave pubblica nel server. Per l’accesso root non vi verà inviata alcuna password via email e potrete accedere alla vostra nuova VPS dal client che avete impostato. Se avete creato una passphrase, vi verrà chiesta al momento dell’autenticazione.
Autore: Etel Sverdlov
Traduzione di Zantx dell’articolo: https://www.digitalocean.com/community/tutorials/how-to-set-up-ssh-keys–2 Copyright © 2016 DigitalOcean™ Inc.