Un ulteriore modo per rafforzare la sicurezza di un sistema Linux contro accessi non autorizzati è l'utilizzo della chiave pubblica (public key) durante la fase di login. L’utilizzo delle PKI è la soluzione attualmente più efficacie su cui si basano le protezioni e le autenticazioni dei sistemi che necessitano standard di sicurezza molto elevati.
Vantaggi
- Elevato grado di sicurezza nel processo di autenticazione.
- Solo gli utenti con la chiave corretta possono autenticarsi nel sistema.
- Ogni chiave può essere protetta da password (ulteriore protezione).
Svantaggi
- Senza la giusta chiave non c'è modo di autenticarsi e quindi di accedere al sistema.
- La gestione delle chiavi può risultare laboriosa.
Procedura
Generare la coppia di chiavi pubblica e privata.
# ssh-keygen -t rsa
La chiave privata viene salvata nel file id_rsa.
La chiave pubblica viene salvata nel file id_rsa.pub.
Creare la directory nascosta .ssh nella home user.
# mkdir ~/.ssh
Copiare la chiave pubblica nel file authorized_keys.
# cat id.rsa.pub > ~/.ssh/authorized_keys
Impostare i permessi sul file per evitare che altri utenti possano leggere i dati della chiave.
#chmod go-w ~/
# chmod 700 ~/.ssh
# chmod go-rwx ~/.ssh
Editare il file sshd_conf (deve essere effettuato come root).
# su -
# vi /ets/ssh/sshd_conf
Identificare e modificare i parametri come indicato.
PubkeyAuthentication yes AuthorizedKeysFile .ssh/authorized_keys PasswordAuthentication no
Riavviare il servizio ssh per attivare la nuova configurazione
# service sshd restart
Una volta effettuato il restart del servizio ssh, l'unico modo per effettuare un login remoto è tramite l'utilizzo delle chiavi generate.
Per generare la chiave pubblica e privata è possibile utilizzare anche altri tools come ad esempio puttygen, membro della famiglia PuTTY e soggetto a licenza MIT compatibile con la GNU GPL.