Cookie

Autenticazione SSH con chiavi

Pubblicato da TheJoe il

Tempo di lettura stimato: 2 minuti

Attenzione


Questo articolo è stato pubblicato più di un anno fa, potrebbero esserci stati sviluppi.
Ti preghiamo di tenerne conto.

Il protocollo SSH (Secure SHell) è un protocollo cifrato usato per stabilire connessioni sicure tra due macchine: client e server. Di per sé è un protocollo già piuttosto sicuro, ma con le chiavi SSH puoi chiudere l’accesso SSH solo a macchine specifiche. Ecco come fare.

In questa mini-guida vedremo come impostare un accesso SSH ad una macchina “server” autenticandoci senza password. Con questa configurazione solo chi ha le giuste chiavi SSH potrà accedere al server. In questo esempio useremo i seguenti indirizzi IP:

  • Client: 192.168.5.114
  • Server: 192.168.5.10

Uno dei requisiti fondamentali è che l’utente che genera la chiave SSH abbia un account abilitato e che appartenga al gruppo sudoers su entrambe le macchine.

Generare la chiave sul server

Per prima cosa generiamo la chiave SSH sul server. Logghiamoci sul server (direttamente o tramite SSH tradizionale) e lanciamo questo comando.

~$ ssh-keygen -t rsa

Mentre viene creata la chiave avremo la possibilità di associare o meno una password. Consiglio di associare la password a meno che non esistano impedimenti particolari tali da dover disabilitare la password al login. Ad ogni modo avremo due possibilità entrambe sicure.

Copiare la chiave sul client

Una volta completato il comando dovremo lanciarne un altro per copiare la chiave generata sul client.

~$ ssh-copy-id -i $HOME/.ssh/id_rsa.pub USER@192.168.5.114

USER è l’utente registrato sul client che useremo per loggarci sul server.

Parto dal presupposto che queste operazioni vengano eseguite all’interno di una LAN, ma se così non fosse occorre trovare il modo di copiare la chiave generata in ~/.ssh/id_rsa.pub nel client in utilizzo tramite ad esempio una condivisione FTP, una mail o addirittura un wormhole.

Guarda qui:  Stampare automaticamente, con upload di file su server Linux

Testare la connessione

Alla fine sarà il caso di testare l’effettivo funzionamento. Torniamo sul client e lanciamo il comando:

~$ ssh -v USER@192.168.5.10

USER è l’utente in ascolto sul server.

Se abbiamo configurato la chiave SSH senza una password verremo immediatamente loggati sul server, al contrario se abbiamo impostato una password alla chiave, questa verrà richiesta ora.

Disabilitare l’autenticazione tramite password utente

Se ci siamo loggati con successo sul server potremmo voler configurare l’accesso in modo che non accetti connessioni tramite password utente. Apriamo il file /etc/ssh/sshd_config con un editor e aggiungiamo una riga in fondo al file come segue:

PasswordAuthentication no

Riavviamo il servizio SSH:

~$ sudo service ssh restart

Ora se provassimo a loggarci nuovamente sul server non potremo farlo senza la chiave SSH generata. Una volta che siamo certi che tutto funzioni correttamente potremo condividere la chiave (usando il comando ssh-copy-id dal server) con gli utenti a cui vorremo concedere l’accesso.

Qualora l’unico modo di accedere al server fosse tramite SSH attenzione a non perdere le chiavi, o non potremo entrare in macchina.


TheJoe

Mantengo questo blog a livello amatoriale dal 2009. Sono appassionato di grafica, tecnologia, software Open Source. Fra i miei articoli non sarà difficile trovarne circa la musica, ed alcuni di riflessioni personali, ma preferisco indirizzare la linea del blog principalmente verso la tecnologia. Per informazioni contattami.

0 commenti

Lascia un commento

Segnaposto per l'avatar

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

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.