Autenticazione con chiavi private SSH

Login tramite SSH senza password utilizzando una chiave privata.

In questa guida vedremo come effettuare lo scambio delle chiavi SSH fra due server in tutta sicurezza.

Logo SSHSempre più spesso, abbiamo bisogno di accedere ai nostri server in remoto tramite connessione SSH. Come ben sappiamo la sicurezza è un parametro da non sottovalutare mai ed è quindi preferibile scegliere delle password composte da lettere numeri e simboli, rendendole di fatto quasi impossibili da decifrare anche avendo l’hash della password, ed allo stesso tempo scongiurare gli attacchi brute force che mirano ad indovinarla.

A volte tendiamo ad adottare password semplici da ricordare e da digitare per pigrizia, perchè magari effettuiamo spesso accessi a quel server e ci annoiamo a scrivere password lunghe e complesse per accedere.

Utilizzando la tecnica delle chiavi condivise, una volta effettuata la procedura, potremo accedere ai server senza digitare più la password e potremo quindi impostare password molto complicate dato che dovremo avere cura solo di annotarle per non dimenticarle.

Per questa configurazione partiamo da una distribuzione Debian 8.9 appena installata e prenderemo in considerazione 2 macchine virtuali che al termine dovranno collegarsi fra di loro tramite SSH senza bisogno di digitare sempre le password.

Scegliamo quindi la macchina master, che è quella da dove partiranno le connessioni verso gli altri server, per chi utilizza Linux come sistema operativo si può utilizzare anche la macchina Desktop, iniziamo con il creare la chiave SSH da condividere con i server con questo comando, assicuriamoci di avere i permessi di root:

ssh-keygen

A questo punto ci verrà chiesto di impostare una password per la chiave, possiamo impostarne una che sarà valida per tutte le connessioni, oppure lasciare in bianco il campo in modo da non dover digitare alcuna password alla connessione:

root@master:~# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Created directory ‘/root/.ssh’.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
6a:50:15:46:36:04:0b:00:28:a2:f3:67:6d:a2:ab:0b root@master
The key’s randomart image is:
+—[RSA 2048]—-+
|o…. .+O. |
|+ . = . |
|+ o |
|o . |
| o .. S |
| . +.o. |
|E + oo |
|. . . |
|oo.. |
+—————–+

Questa sarà la risposta della bash, abbiamo creato la nostra chiave da condividere con gli altri server, adesso non ci sersta che copiarla sulle macchine che ci interessano tramite il comando ssh-copy-id:

ssh-copy-id username@indirizzo_ip

Ci verrà chiesta la password di accesso al sistema, una volta fornita la chiave verrà copiata nel sistema, da adesso potreemo collegarci al server che contiene la chiave senza digitare alcuna password semplicemente con il comando:

ssh username@indirizzo_ip

Di seguito alcuni siti di riferimento per approfondire l’argomento:

  1. Home page del pacchetto OpenSSH
  2. Home page del progetto Debian

 

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *