Newsgroup: it.comp.os.linux.sys
Titolo: rsync+password

Salve, mi rivolgo al ng.nella speranza che qualcuno mi dia delle dritte su
come risolvere il problema in oggetto.
Ho la necessità di fare mirroring tra due server linux ( Debian Woody ) con
uno script eseguito da crontab.
Se eseguo lo script in interattivo tutto funziona, ma purtroppo mi viene
richiesto l'inserimento della password.
Per completezza questo avviene da una sessione SSH, loggato come root.
Se invece tento di eseguire lo script da crontab ricevo il seguente
messaggio :
Permission denied, please try again.
Permission denied, please try again.
Received disconnect from 192.168.x.x: 2: Too many authentication failures
for root
rsync: connection unexpectedly closed (0 bytes read so far)
rsync error: error in rsync protocol data stream (code 12) at io.c(150).
Ho tentato di utilizzare sia la variabile RSYNC_PASSWORD e sia il
parametro --password-file,
ma nulla da fare.
Ho creato in /etc i files rsyncd.conf e rsyncd.secrets ed inoltre rsync
viene lanciato da inetd come demone.
Forse avrò sbagliato qualcosa a livello di files di configurazione, ma sono
sicuro di aver seguito alla
lettera le indicazioni recuperate dai vari siti in merito.
Spero che qualcuno nel ng. abbia già risolto il mio problema, io francamente
mi sto arrendendo.
Nella speranza di un Vs. aiuto, cordialmente saluto.
Gabriele

Ciao,
usa la RSA authentication di SSH invece della password,
generati una chiave RSA (ssh-keygen) metti la
parte pubblica nel file .ssh/authorized_keys dell'utente
remoto (la dir .ssh deve avere mode=700 ed il file authorized_keys 644)
Usa ssh-agent e ssh-add sulla macchina locale et voila, ti puo'
connettere senza dover immettere la password.
Per maggiori info :
http://www.boran.com/security/sp/ssh-part2.html#Publickey%20trusts
Saluti,
Gianluca


 usa la RSA authentication di SSH invece della password,
Fai riferimento anche ad RSYNC, se così fosse mi sfugge qualche
passaggio.C'è un legame quindi tra RSYNC ed SSH/RSH ?
Se non chiedo troppo, puoi cortesemente essere un pò più dettagliato
sull'argomento, grazie.


 sull'argomento, grazie.
OK. Rsync puo' usare SSH come canale di trasmissione
(opzione -e /path-bin/ssh). Questo significa che il protocollo RSYNC
viene incanalato all'interno di una sessione SSH.
A questo punto a te rimane solo di fare in modo che l'utente sulla
macchina locale si possa connettere alla macchina remota tramite
SSH senza dover dare la propria password.
A differenza di quello che puo' sembrare a primo acchitto, cio' non
va affatto contro le piu' basilari norme di sicurezza. Anzi!
Sulla macchina locale avrai un processo ssh-agent che gira sotto
l'utente locale. A questo "agente" l'utente locale dovra' comunicare la
propria passphrase, tramite il comandao ssh-add.
Una volta fatto, l'agente e' in grado di autenticare l'utente ad ogni
connessione SSH.
L'utente locale deve naturalmente possedere una chiave RSA che si puo'
generare con ssh-keygen.
Perche' il tutto funzioni sono necessari un po' di settaggi e 
configurazioni sia sulla macchina locale che su quella remota,
niente di complicato e soprattutto niente di non documentato.
L'idea e' questa che ti ho detto, e ti assicuro che funziona benissimo
anche con RSYNC.
Saluti,
Gianluca