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”