SSH senza password linux

Ti piacerebbe usare ssh senza dover digitare la password? SSH è un protocollo sicuro che permette di far dialogare con un server linux tramite linea di comando per effettuare manutenzioni di vario tipo. Vorremo collegarci usando questa sintassi:

ssh user@remotehost

Ma per connetterci ci viene richiesta la password di accesso e solo dopo dopo siamo connessi. Diventa frustante digitare ogni volta la password, e se volessimo fare degli script che automatizzano un certo processo per semplificare alcuni compiti ci verrebbe una impresa non semplice.

Per questo motivo ci vengono in aiuto le chiavi SSH. Vediamo quindi come generare una coppia di chiavi pubblica e privata SSH sulla propria macchina, esportiamo poi la chiave pubblica sul server remoto. Facendo in questo modo riusciamo ad autenticare la nostra chiave remota, facendo si che le nuove connessioni avvengano senza la richiesta di nessuna password.

Supponiamo che il server remoto si trovi all’indirizzo IP 192.168.1.2 e ipotizziamo di avere un account chiamato userremote sulla macchina remota.

Come detto prima dobbiamo per prima cosa generare una coppia di chiavi sul nostro computer locale (n.b: alla richiesta del passphrase viene lasciata vuota, altrimenti mi verrebbe comunque richiesta al primo login di ogni sessione):

alai@mac:~$ ssh-keygen -t rsa  
Generating public/private rsa key pair.  
Enter file in which to save the key (/home/alai/.ssh/id_rsa):  
Enter passphrase (empty for no passphrase):  
Enter same passphrase again:  
Your identification has been saved in /home/alai/.ssh/id_rsa.  
Your public key has been saved in /home/alai/.ssh/id_rsa.pub.  
The key fingerprint is:  

A questo punto posso copiare la chiave pubblica che ho appena generato sul server remoto, userò il comando scp che permette tramite protocollo ssh la copia dei file.

cd ~/.ssh/  
scp id_rsa.pub userremote@192.168.q.2:./id_rsa.pub

Mi viene chiesta la nostra password remota, per poter effettuare la copia del file. Adesso mi connetto in ssh sulla macchina remota e eseguo le operazioni necessarie per completare l’istallazione della chiave pubblica.

ssh userremote@192.168.1.2

Effettuato l’accesso , eseguo i seguenti comandi:

cd .ssh  
touch authorized_keys2  
chmod 600 authorized_keys2  
cat ../id_rsa.pub >> authorized_keys2  
rm ../id_rsa.pub

Ci siamo riusciti! Ora le nostre nuove sessioni SSH verso il server remoto si eseguiranno automaticamente senza digitare la password. Provare per credere!