Creare la coppia di chiavi RSA
Il primo passo è creare nella macchina da cui si vuole fare l’accesso verso altre la coppia di chiavi pubblico e privata
ssh-keygen -t rsa
Memorizzare le chiavi e impostare la passphrase
Una volta dato il comando di generazione verranno chieste alcune domande
Enter file in which to save the key (/home/demo/.ssh/id_rsa):
Dando invio verrà salvata nella cartella mostrata
Enter passphrase (empty for no passphrase):
Andrà poi inserita una passphrase che permette di proteggere la chiave privata da impossessamenti non autorizzati.
Lo svantaggio è che impostandola andrà inserita ogni volta che sarà necessario usare la chiave privata.
Il processo di generazione della chiave procederà in questo 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 | | | +-----------------+ The public key is now located in /home/demo/.ssh/id_rsa.pub The private key (identification) is now located in /home/demo/.ssh/id_rsa
Copiare la chiave pubblica sugli host
Dopo aver generato la coppia di chiavi andrà copiata la chiave pubblica negli host a cui si vuole accedere dalla macchina su cui si è fatta la generazione della coppia di chiavi.
La copia della chiave pubblica nel file authorized_keys dell’host di destinazione si può effettuare con il comando ssh-copy-id, dalla macchina dove è residente la chiave pubblica.
ssh-copy-id -i ~/.ssh/id_rsa.pub user@IPdestinazione
In alternativa si può copiare usando SSH
cat ~/.ssh/id_rsa.pub | ssh user@IPdestinazione "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
Lanciando i comandi di qui sopra dovrebbe apparire qualcosa come questo (verrà richiesta la password dell’utente con cui ci si sta connettendo)
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.
Eventuale disabilitazione dell’accesso root
Dopo aver copiato la chiave SSH si potrebbe disabilitare l’accesso SSH sull’host con nome utente e password per l’utente root (in modo che sia possibile connettersi solo tramite chiavi).
Per farlo bisogna modificare nel file sshd_config la voce PermitRootLogin impostandola in questo modo
nano /etc/ssh/sshd_config PermitRootLogin without-password
e infine riavviare il servizio
reload ssh