martedì 10 febbraio 2015

Rsync senza password per backup su macchine differenti

Supponiamo di avere due macchine, una di produzione e l'altra di backup, che devono condividere gli stessi dati o per lo meno la seconda macchina deve funzionare come backup del server principale

Il metodo piu' semplice e' utilizzare il comando rsync con lo scambio delle chiavi in modo da non necessitare l'introduzione di una password (per semplicita' su entrambe le macchine ci sara' lo stesso utente)

Si testa prima la connessione copiando i dati dal server principale (192.168.0.1) a quello di backup 192.168.0.2 (ci si mette quindi nella shell del server principale)

rsync -avz -e ssh /home/luca/ luca@192.168.0.2:/home/luca/backup

in questo modo i file della home dell'utente luca sul server sono copiati sulla macchina remota. Si deve inserire manualmente la password
Per evitarlo, stando nella shell del server principale, si creano le chiavi ssh con 

ssh-keygen

(si puo' digitare enter alla richiesta della passphrase)
si copiano quindi le chiavi sul server di backup

ssh-copy-id -i /home/luca/.ssh/id_rsa.pub 192.168.0.2

se ha funzionato possiamo loggarci in ssh come luca da 192.168.0.1 a 192.168.0.2 senza digitare password

ssh 192.168.0.2

terminato cio' se digitiamo di nuovo il comando
rsync -avz -e ssh /home/luca/ luca@192.168.0.2:/home/luca/backup

non verra' richiesta la password, cosa particolarmente utile se si mette la procedura in cron