Barra laterale

rete:usare_ssh_in_modo_non_interattivo

Usare ssh in modo non interattivo

Autore: Fabio Di Matteo
Ultima revisione: 23/01/2010

Grazie al comodo programma sshpass e' possibile passare la password per i servizi ssh in maniera non interattiva, ovvero e' possibile passare la password tramite linea di comando.

Da fare solo per la prima connessione

Solo per la prima connessione e' necessario rispondere yes al seguente messaggio, utilizzando ssh in modo tradizionale , senza utilizzare sshpass.

The authenticity of host '192.168.1.60 (192.168.1.60)' can't be established.
RSA key fingerprint is e5:db:2a:40:ff:5f:da:1f:29:2e:a8:b9:e1:d3:b5:69.
Are you sure you want to continue connecting (yes/no)?

Accedere ad una shell

 sshpass -p <password> ssh <utente>@<nomehost> 

Copiare intere directory

  sshpass -p <password> scp -r <utente>@<host>:/home/fabio/Documenti/ . 

Non verificare l'autenticita' dell'host

Come abbiamo detto la prima volta che si connette ad un host e' necessario accertarne l'autenticita' acquisendone la firma, ovvero rispondere yes al seguente messaggio:

The authenticity of host '192.168.1.60 (192.168.1.60)' can't be established.
RSA key fingerprint is e5:db:2a:40:ff:5f:da:1f:29:2e:a8:b9:e1:d3:b5:69.
Are you sure you want to continue connecting (yes/no)?

Specificando l'opzione -o StrictHostKeyChecking=no e anche -o UserKnownHostsFile=/dev/null e' possibile ignorare questa operazione. Eccone un esempio:

  sshpass -p <password> scp -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -r <utente>@<host>:/home/fabio/Documenti/ . 

Creare uno script che faccia il backup automatizzato e incrementale tramite Rsync

Adesso procederemo alla creazione di uno script che possa fare il backup incrementale attraverso un tunnel ssh.

Preparativi

Per realizzare lo script useremo il noto programma rsync in combinazione con ssh e sshpass (quest'ultimo per evitare che la password ci venga chiesta ogni volta). Sulla macchina da backuppare e' nesessario che siano attivi i seguenti server:

  • sshd;
  • rsyncd.

Invece sulla macchina che ospitera' i backup e' necessario aggiungere le seguenti righe al file di configurazione del client ssh (per evitare che chieda di verificare l'autenticita' del server ssh di cui fara' il backup ):

/etc/ssh/ssh_config

...
StrictHostKeyChecking no
UserKnownHostsFile=/dev/null
...

Lo script

Lo script da lanciare nel server che conterra' i backup e' il seguente:

sshpass -p <password>  rsync --log-file=<log-backup.log> -avz -e ssh <USER>@<IP>:<directory da backuppare> <directory locale che contiene i backup>

usando l'opzione “ –progress ” di rsync potremmo visualizzare la percentuale di avanzamento, la velocita' di trasferimento e anche il tempo rimanente stimato.


rete/usare_ssh_in_modo_non_interattivo.txt · Ultima modifica: 18/04/2018 - 15:49 (modifica esterna)