Lavorando spesso con SSH, facendo operazioni frequenti, ci si può stancare di dover continuamente scrivere a propria password.
Per mantenere la sicurezza e allo stesso tempo semplificare le operazioni si può passare ad una modalità di autenticazione basata su crittografia asimmetrica, e quindi chiave pubblica e chiave privata.
Iniziamo con un’operazione semplice e indispensabile, generare le chiavi. Per fare ciò c’è naturalmente bisogno di una shell con supporto ssh, e basterà eseguire il seguente comando:
ssh-keygen
Questo vi porrà due domande per poter procedere:
- Enter file in which to save the key (/home/nomeutente/.ssh/id_rsa):
Semplicemente il nome del file in cui salvare la chiave. Se non si specifica nulla userà il default che corrisponde al file tra parentesi. - Enter passphrase (empty for no passphrase):
Se si vuole abbinare un password alla chiave si può specificare qui. (Lo sconsiglio se dovete fare tante operazioni frequenti)
A questo punto vi troverete con due nuovi file nella cartella /home/nomeutente/.ssh/, il file chiamato ‘id_rsa’ che contiene la chiave privata e il file ‘id_rsa.pub’ che contiente la chiave pubblica.
Una volta caricata la chiave pubblica sul server si potrà procedere con una connessione digitanto nella nostra shell:
ssh -i /home/nomeutente/.ssh/id_rsa remoteuser@XXX.XXX.XXX.XXX
Volendo semplificare ulteriormente le cose possiamo creare nella nostra cartella .ssh un file ‘config’ contenente le seguenti informazioni:
Host connectionname User remoteuser HostName XXX.XXX.XXX.XXX IdentityFile /home/nomeutente/.ssh/id_rsa
A questo punto ci basterà digitare nella nostra shell
ssh connectionname
per eseguire la connessione all’host specificato, con il file chiave e il nome utente che abbiamo configurato.
Naturalmente si può specificare un Host per ogni server a cui dobbiamo connetterci, anche usando chiavi diverse (se non specificato ssh cerca la chiave chiamata id_rsa).