547 Stimmen

Ist es möglich, bei der Verwendung von rsync einen anderen ssh-Port anzugeben?

Ich habe den folgenden Befehl ausprobiert:

rsync -rvz --progress --remove-sent-files ./dir user@host:2222/path

SSH läuft auf Port 2222, aber rsync versucht immer noch, Port 22 zu verwenden und beschwert sich dann, dass der Pfad nicht gefunden wird, weil er natürlich nicht existiert.

Ich würde gerne wissen, ob es möglich ist, rsync auf einen entfernten Host an einem nicht standardmäßigen ssh-Port zu übertragen.

939voto

klapa Punkte 8099

Ihre Befehlszeile sollte folgendermaßen aussehen:

rsync -rvz -e 'ssh -p 2222' --progress ./dir user@host:/path

Dies funktioniert problemlos - ich verwende es ständig, ohne dass neue Firewall-Regeln erforderlich sind - beachten Sie nur, dass der SSH-Befehl selbst in Anführungszeichen gesetzt ist.

205voto

Joao Costa Punkte 2395

Eine andere Möglichkeit ist, auf dem Rechner, von dem aus Sie rsync ausführen, den Port in der ssh-Konfigurationsdatei festzulegen, d.h.:

cat ~/.ssh/config
Host host
    Port 2222

Dann wird rsync über ssh mit Port 2222 kommunizieren:

rsync -rvz --progress --remove-sent-files ./dir user@host:/path

42voto

Techie Punkte 43452

Wenn Sie Dateien über einen bestimmten SSH-Port senden müssen:

rsync -azP -e "ssh -p PORT_NUMBER" source destination

Beispiel

rsync -azP -e "ssh -p 2121" /path/to/files/source user@remoteip:/path/to/files/destination

26voto

Siwei Punkte 16939

Die "rsh-Option" verwenden, z. B:

rsync -avz --rsh='ssh -p3382' root@remote_server_name:/opt/backups

beziehen sich auf: http://www.linuxquestions.org/questions/linux-software-2/rsync-ssh-on-different-port-448112/

14voto

Kevin Punkte 2501

Die korrekte Syntax besteht darin, Rsync anzuweisen, einen benutzerdefinierten SSH-Befehl zu verwenden (indem Sie -p 2222 hinzufügen), der einen sicheren Tunnel zur entfernten Seite mit SSH erstellt und dann eine Verbindung über localhost:873 herstellt

rsync -rvz --progress --remove-sent-files -e "ssh -p 2222" ./dir user@host/path

Rsync läuft als Daemon am TCP-Port 873, der nicht sicher ist.

Von Rsync man:

Push: rsync [OPTION...] SRC... [USER@]HOST:DEST

Das verleitet die Menschen dazu, dies zu versuchen:

rsync -rvz --progress --remove-sent-files ./dir user@host:2222/path

Das bedeutet jedoch, dass er angewiesen wird, eine Verbindung zu Rsync Daemon auf Port 2222, der nicht vorhanden ist.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X