Page 1 of 1

rsync + ssh : "error in rsync protocol data stream"

Posted: 2008-05-15 17:26
by Anonymous
Hallo liebe roots, server-admins & shell-Enthusiasten,

rsync -av(z) --delete-after -e "ssh -p $PORT -i mein-rsync-key -l $RUSER IP.xy.xy.xy" $RUSER@$RHOST:/$RPATH $LPATH

Dieses schöne Kommando, von meinem SMB/DC-Server abgesetzt (Debian Linux 2.6.18), soll zwei weitere Kisten
remote sync'en bzw. backup-Dateien heranholen. Auch beides Debian-Rechner, Kernel 2.6.20.

Es klappt für den lokalen Linux-PC (mailsystem, hinter der gleichen Firewall, IP 192.168., anderer port)
Und es schlägt fehl für den "entfernten" Linux-PC. (web-server bei Hetzner, der aber per direkter ssh
und speziellem Port sonst von überall erreichbar ist.)

Mit folgender Fehlermeldung steigt rsync aus :
"connection unexpectedly closed. error in rsync protocol data stream (code 12) at io.c(454) [sender=2.6.9]"
Und das war's, mehr kommt nicht, was einem direkt weiterhelfen würde.

Hab dann mal das eingebettete ssh auf high verbose gesetzt, ssh -vvvvvvv :
Da kann man einen schön funktionierenden TLS-Handshake beobachten, d.h. keys sind korrekt, (wenn auch
evtl. bald zu erneuern, aber anderes Thema), d.h. Authentifizierung läuft, Verbindung zum Rechner steht.
Die Kombination rsync-over-ssh hat nun wohl viele bekannte Tücken, merkwürdig ist hier nur, dass es im einen Fall
klappt, und im anderen nicht.

Ich habe bereits Hinweise erhalten, dass die Versionen hier eine wichtige Rolle spielen und Konflikte verursachen
können. Jedoch, außer 0.0.2 Versionsunterschied beim Kernel (s.o.), sind die ssh-Komponenten identisch :

rsync 2.6.9-3 prot.29, openSSH 4.3p2-Debian9, openssl 0.9.8e-4 Feb.2007), das übliche halt.

Der $RUSER ( = ssh-rsync) ist chrooted (scponlyc als shell) und mein-rsync-key ist ein DSA-1024 Schlüssel, der sich mit
"ssh-dss ...." identifiziert. Hat interessanterweise nur 650+ bytes.

Was meint ihr, wie man das zum Laufen bringen könnte ? Es soll wohl in der Form schon mal funktioniert haben,
bis zu einem Systemupgrade vor einigen Monaten...

Beste Grüße und auf ein paar Ideen hoffend...(Danke !)

== Newton ==

Re: rsync + ssh : "error in rsync protocol data stream"

Posted: 2008-05-15 18:09
by Joe User
Mit absoluten Pfaden funktioniert es zumindest unter Gentoo und openSUSE problemlos:

Code: Select all

/usr/bin/rsync ${RSYNC_OPTS} -e "/usr/bin/ssh -p ${REMOTE_PORT}" 
${REMOTE_USER}@${REMOTE_HOST}:${REMOTE_PATH} ${LOKAL_PATH}

BTW: Die Schlüssel sind umgehend zu ersetzen, da bereits mehrere Exploits, insbesondere für SSH, im Umlauf sind.

Re: rsync + ssh : "error in rsync protocol data stream"

Posted: 2008-05-19 14:06
by Anonymous
Hallo,

ich hatte auch schon die Vermutung, dass die Shell das Kommando nicht richtig parsen kann - daher andere Anführungszeichen,
zusätzliche Leerzeichen usw. probiert. Mit Klammern um die Variablen, wie in deinem Beispiel, kann ich es auch nochmal versuchen.

Was mich aber am meisten irritiert, ist dass dieses Skript für den internen Server funktioniert, (hinter der gleichen vorgeschalteten
Firewall, auf etwas anderem Port) und für den externen Server nicht. Trotz Erreichbarkeit des externen über ssh -p !

Grüße,
== Newton ==