Autenticarsi in SSH senza l’uso di password

Non tutti conoscono come connettersi in SSH ad una macchina linux senza utilizzare la password ed alle volte è utile farlo per procedure automatizzate, tipo un tunelling rsync.

Per prima cosa dobbiamo creare un set di chiavi, una pubblica ed una privata, per fare questo usiamo il comando ssh-keygen.

ssh-keygen -t rsa -b 2048 -f chiave
Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in chiave.
Your public key has been saved in chiave.pub.
The key fingerprint is:
e2:62:7f:21:0b:01:20:41:12:95:eb:c2:4b:65:4f:a3 michele@macbook-de-michele-nasoni.local
The key's randomart image is:
+--[ RSA 2048]----+
|B*..             |
|o o              |
|   o             |
|  .o.o           |
|..o +.o S        |
|.o.E.o...        |
|... o..o .       |
| . . o. .        |
|      ..         |
+-----------------+

Ora nella directory corrente abbiamo due file chiave e chiave.pub

Per togliere la richiesta della password

openssl rsa -in chiave -out chiave_no_pass

La chiave pubblica la copiamo nel server, nello specifico l’accodiamo al file authorized_keys

scp chiave.pub remoteuser@remotehost:

Connettersi al server

ssh remoteuser@remotehost:
cat chiave.pub >> /home/utente2/.ssh/authorized_keys
chmod 600 /home/utente2/.ssh/authorized_keys

La chiave privata la portiamo con noi e la proteggiamo

per connetterci

ssh nome_utente@nome_computer -i nome_file_chiave_privata_login

Ora, supponiamo che vogliamo usare la chiave solo per lanciare un applicazione in automatico.
Vi consiglio di modificare la chiave in authorized_keys in modo tale che quella chiave lanci solo quella specifica applicazione

Se questa è la chiave pubblica in authorized_keys

ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAyEOdsrEWFZYxeb6X5164tzmRrkb8KkwK+AZvcD/gj+RzaFczmzQUmNs+7Iz9t4tugMVP9NLUQoOyMLgZAMqnukK4CJVFpK0tGyDRAl2dEG7eRNKxhDVXcp/2+Htnvf2PJtdT7PK04CGeggp3UOXkYe8doGeo/JWWcUhtOU+iKi7cBz0rHlhbajvD1ezT8HvTvvMyPzDAFPC2k7/JKNDMuXs7xcLqPUe+UL6SphOjj+4HlCtciSp4ld2+UYrH4LRUoaJn0977PHzBDRg22hUnyzmFRWuUahvZHSa0xilbEvx5UIw3UnfM0O4dGvx7NRVJMwdE0NzEDcxjTVuocWdHww== michele@macbook.local

La modifichiamo cosi

command="/PATH/file_da_eseguire.sh" ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAyEOdsrEWFZYxeb6X5164tzmRrkb8KkwK+AZvcD/gj+RzaFczmzQUmNs+7Iz9t4tugMVP9NLUQoOyMLgZAMqnukK4CJVFpK0tGyDRAl2dEG7eRNKxhDVXcp/2+Htnvf2PJtdT7PK04CGeggp3UOXkYe8doGeo/JWWcUhtOU+iKi7cBz0rHlhbajvD1ezT8HvTvvMyPzDAFPC2k7/JKNDMuXs7xcLqPUe+UL6SphOjj+4HlCtciSp4ld2+UYrH4LRUoaJn0977PHzBDRg22hUnyzmFRWuUahvZHSa0xilbEvx5UIw3UnfM0O4dGvx7NRVJMwdE0NzEDcxjTVuocWdHww== michele@macbook.local

Infine
se non riuscite a connettervi ed avete un errore del tipo:

Permission denied (publickey)

Potrebbe essere che la vostra chiave non sia protetta

chmod go-w ~/
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

Ed abbiamo finito

2 thoughts on “Autenticarsi in SSH senza l’uso di password”

Leave a Reply

Your email address will not be published. Required fields are marked *