Se amministri molti server può esserti utile automatizzare le procedure di login e copia degli aggiornamenti. Per far questo è necessario configurare il sistema per utilizzare una coppia di chiavi RSA o DSA invece della password.
Se la comunicazione già richiede l'autenticazione con chiavi riceverete l'errore Permission denied (publickey) tentando di loggarvi.
Per poter effettuare questa configurazione è necessario poter scrivere nella cartella del server /Users/NomeUtente/.ssh
1. Creo una coppia di chiavi sul mio computer
Dovrò scegliere l'algoritmo da utilizzare, DSA ha lunghezza fissa di 1024, mentre RSA è configurabile con un default di 2048; quindi è più sicuro utilizzare una chiave RSA.
ssh-keygen -b 1024 -t dsa
oppure
ssh-keygen -b 4096 -t rsa
quindi premere invio (accettando quindi i defaults) finché non esce dal programma. L'output indicherà il percorso della chiave pubblica:
ptah:~ ric$ ssh-keygen -b 1024 -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/ric/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /Users/ric/.ssh/id_rsa.
Your public key has been saved in /Users/ric/.ssh/id_rsa.pub.
The key fingerprint is:
A questo punto nel file /Users/ric/.ssh/id_rsa (sostituite ric con il vostro username) avrete la vostra chiave pubblica e la chiave privata sarà stata installata automaticamente.
2. Copio la chiave sul server
Potete copiarla come vi pare, per esempio, se avete già accesso SSH:
scp /Users/ric/.ssh/id_rsa.pub serveraddress:
quindi aprite una sessione SSH verso il server e (per chiavi RSA)
cat id_rsa.pub >> /Users/user/.ssh/authorized_keys
oppure, per chiavi DSA:
cat id_dsa.pub >> /Users/user/.ssh/authorized_keys2
Per poterla usare sul server dovrete copiarla alla fine del file /Users/ric/.ssh/authorized_keys (chiavi RSA) oppure /Users/ric/.ssh/authorized_keys2 (chiavi DSA)
3. Mi collego
A questo punto è possibile una sessione SSH crittografata con le chiavi appena create.
Attenzione: fate sempre un backup di ogni coppia di chiavi in un posto sicuro: le chiavi dei server tendono ad accumularsi, e a volte non si usano per anni; una buona misura di sicurezza è disabilitare l'accesso in mancanza di chiavi valide: in tal caso potreste restare tagliati fuori in caso doveste smarrirle.
4. Restringo l'accesso ad ssh agli utenti che abbiano una chiave valida registrata
Ora è possibile "indurire" un po' di più il server, limitando l'accesso agli utenti che abbiano una chiave valida; la configurazione è nel file
/etc/ssh/sshd_config