Le autenticazioni RSA e/o ECDSA sono utili per le connessioni con sistemi remoti attraverso il protocollo SSH-2 poiché permettono il collegamento senza che venga esplicitamente chiesta la password ogni volta. Inoltre attraverso l'uso di ssh-agent sarà richiesta la passphrase una sola volta. (Si consiglia di usare sempre la passphrase a protezione delle chiavi private generate)
Generare la propria coppia di chiavi (pubblica e privata) con i seguenti comandi:ssh-keygen -t rsa
(genera i file id_rsa e id_rsa.pub)ssh-keygen -t ecdsa
(genera i file id_ecdsa e id_ecdsa.pub)
Si compone quindi il file authorized_keys attraverso i comandi:cd ~/.ssh/
cat id_ecdsa.pub > authorized_keys
cat id_rsa.pub >> authorized_keys
Il file authorized_keys va trasferito nelle directory .ssh/ all'interno della home degli utenti dei server su cui si vuole utilizzare questo tipo di autenticazione: il trasferimento può essere fatto in qualunque modo ma si consiglia l'uso di sftp
Il programma ssh-agent permette di autenticare in modo permanente una sessione di terminale al fine di digitare una sola volta la passphrase per la chiave generata. Per beneficiare di questa comodità e garantire al contempo un buon livello di sicurezza al sistema, bisogna utilizzare tale programma solo se si utilizza ripetutamente l'autenticazione sopra descritta e chiuderlo quando non è più necessario.
Per avviare ssh-agent digitare:ssh-agent
ed eseguire i comandi che vengono scritti in output.
Per aggiungere la propria chiave ad ssh-agent ci si serve del comandossh-add
che richiederà l'introduzione della passphrase.
Da questo momento e fino a quando il processo ssh-agent è attivo la passphrase sarà automaticamente inviata ogni volta che una autenticazione RSA o ECDSA viene richiesta.
N.B.: È consigliabile aggiungere la stringaAllowUsers $nomeBreveUtente1, $nomeBreveUtente2, ecc...
al file sshd_conf (e riavviare il servizio) per limitare l'accesso ssh ai soli utenti che ne hanno la reale necessità.
Per maggiore sicurezza controllare anche che siano presenti le impostazioni Protocol 2
(inibisce l'utilizzo dell'obsoleto protocollo 1), StrictModes yes
(permette un maggiore controllo sui files di configurazione), PermitEmptyPasswords no
(inibisce l'utente che abbia una password vuota), PermitRootLogin no
(inibisce la possibilità di entrare come superutente), ChrootDirectory
(intrappola gli utenti all’interno di una determinata directory) e ForceCommand
(forzare l’esecuzione di unico comando negando, ad esempio, l’accesso alla shell). [N.B.: Se avete sudo installato e correttamente configurato potete direttamente disabilitare l'utente root con il comando sudo passwd -l root
(onde poi riabilitarlo con il comando sudo passwd root
in caso di necessità).]