it-swarm.com.de

Kann bei der Verwendung von rsync ein anderer ssh-Port angegeben werden?

Ich habe den folgenden Befehl versucht: 

rsync -rvz --progress --remove-sent-files ./dir [email protected]: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 wurde, da er natürlich nicht vorhanden ist. 

Ich würde gerne wissen, ob es möglich ist, auf einem nicht-standardmäßigen ssh-Port mit einem Remote-Host zu synchronisieren.

309
Ketema

Ihre Befehlszeile sollte folgendermaßen aussehen:

rsync -rvz -e 'ssh -p 2222' --progress --remove-sent-files ./dir [email protected]:/path

das funktioniert gut - ich benutze es ständig, ohne neue Firewall-Regeln zu benötigen. Beachten Sie, dass der SSH-Befehl selbst in Anführungszeichen steht.

523
klapa

Eine andere Option: In dem Host, von dem aus Sie rsync ausführen, legen Sie den Port in der Konfigurationsdatei ssh fest.

cat ~/.ssh/config
Host host
    Port 2222

Dann spricht rsync über ssh mit Port 2222:

rsync -rvz --progress --remove-sent-files ./dir [email protected]:/path
106
Joao Costa

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 [email protected]:/path/to/files/destination
13
Techie

verwenden Sie die "rsh-Option". z.B.: 

rsync -avz --rsh='ssh -p3382' [email protected]_server_name:/opt/backups

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

Ein bisschen offtopic, könnte aber jemandem helfen. Wenn Sie Passwort und Port übergeben müssen, empfehle ich das Paket sshpass. Befehlszeilenbefehl würde folgendermaßen aussehen: sshpass -p "password" rsync -avzh -e 'ssh -p PORT312' [email protected]:/dir_on_Host/

1
Tomas

Rsync wird als Daemon auf TCP Port 873 ausgeführt, ungeschützt, hat nichts mit SSH zu tun

Von Rsync Mann:

Drücken Sie: rsync [OPTION ...] SRC ... [USER @] Host: DEST

Führt Sie zu der Überzeugung, dass Ihr Befehl korrekt ist:

rsync -rvz --progress --remove-sent-files ./dir benutzer @ host: 2222/pfad

Das bedeutet jedoch, dass er sich an Port 2222 mit dem Rsync daemon verbinden soll, der nicht vorhanden ist.

Wie bereits erwähnt, ist die korrekte Syntax, Rsync mitzuteilen, einen benutzerdefinierten SSH-Befehl (Hinzufügen von -p 2222) zu verwenden, der die Verbindung (auf der entfernten Seite) mit TCP 873 für Rsync (unter Verwendung eines sicheren SSH-Tunnels) fortsetzt.

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

0
kevinf

Ich habe diese Lösung auf Mike Hike Hostetlers Site gefunden, die perfekt für mich funktioniert hat.

# rsync -avz -e "ssh -p $portNumber" [email protected]:/path/to/files/ /local/path/
0
Rusty1