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
Lascia un commento