SSH – Utilizzarlo con chiavi pubblica e privata

E’ fondamentale proteggere l’accesso ai nostri server per difenderli dagli acari (hackers). Per farlo facciamo molti sforzi e utilizziamo diversi accorgimenti. Oggi parliamo di uno di questi, l’utilizzo delle chiavi crittografiche asimmetriche per accedere ad un server linux tramite ssh.

Questo metodo è sempre più usato, perché ritenuto più sicuro, rispetto al tradizionale accesso con ssh tramite login e password. Per l’utente alla fine cambia poco, prima dovevi avere la password, ora devi avere la chiave privata. Privata perché la corrispondente chiave pubblica la devi caricare sul server.

Ok, vediamo come si fa.

1) genero una coppia di chiavi: pubblica e privata

2) Come già detto quella pubblica la carico sul server (poi vediamo dove)

3) quella privata la do in pasto a ssh quando faccio la connessione ed il gioco è fatto

Generazione

Il comando è ssh-keygen. Con il parametro -t posso specificare quale schema di chiavi generare. Supponiamo di utilizzare il più recente ed25519

quindi darò il comando

ssh-keygen -t ed25519 

Mi verrà chiesto il nome del file dove salvare lachaive pubblica. Conviene cambiarlo e dare un nome sensato alla chiave, magari in modo da capire quale porte aprirà.

Mi viene anche chiesto se voglio proteggere la chiave privata con una password. Mi sembra una buona idea metterla, così se ci rubano il file non potranno utilizzarla. Tieni conto che con la chiave puoi accedere senza altre password al server e farci ciò che vuoi, quindi vale la pena di prendere qualche precauzione in più.

Fatto ciò troveremo 2 file una con la chiave privata el’altro con quella pubblica, con l’estenzione .pub

Fai subito una copiala chiave

Copia della chiave pubblica sul server

Il contenuto del file con la chiave pubblica generato prima copialo nel file .ssh/authorized_keys nella cartella home dell’utente al quale si vuole accedere. Se ce ne sono altre verifica che siano “buone”, altrimenti cancellale. Non è necessario far ripartire il demone sshd.

Accesso dal client

Dai il comando seguente, ovviamente con i paramteri corretti

ssh -i nomedelfileconlachiaveprivata user@server

Salvare i parametri di ssh

Se hai più server, magari su porte diverse, con porte diverse devi ogni volta digitare tutti i dati.

Per risparmiare tempo puoi mettere i parametri in un file di configurazione (.ssh/config)

Ecco un esempio

Host server1

    HostName server1.domedominio.com

    User ubuntu

    Port 2222

    IdentityFile ~/.ssh/server1.priv.key

A questo punto sarà sufficiente dare il comando

ssh server1


Commenti

Lascia un commento

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