Ich bin zurzeit nicht in meinem LAN und muss eine Sicherungskopie meines Laptops erstellen. Ich habe eine etwas neuere Kopie meines Laptops auf meinem Server und ich sichere den Laptop normalerweise mit rsync. Jetzt möchte ich das aber außerhalb meines LANs machen.
Kurz gesagt, ich möchte Daten von A nach C über B senden, wobei A mein Laptop, B mein Router und C mein Server ist.
Ich habe folgenden Befehl gefunden A$ scp -oProxyCommand="ssh B nc %h %p" thefile C:destination
:, das funktioniert gut für die Übertragung von Dateien über scp - aber da ich bereits die meisten Daten auf meinem Server habe, möchte ich rsync verwenden, um nur das Delta zu synchronisieren.
Ich habe versucht: A$ rsync file -e 'ssh B ssh' C
und das funktioniert, soweit ich aufgefordert werde, das Kennwort für den Benutzer anzugeben: C. Wenn ich das Passwort eingebe, passiert jedoch nichts. Auf dem Router wird Tomato v1.28 ausgeführt, und ich kann es nicht so einrichten, dass eine ssh-Konfigurationsdatei verwendet wird, damit es sich mit einem Kennwort bei C anmelden kann.
Irgendwelche Ideen, wie man diese Arbeit macht?
ProxyCommand
in der Konfigurationsdatei. Rsync sollte das aufnehmen.Antworten:
Diese Frage wird im Wesentlichen an anderer Stelle beantwortet, einschließlich hier für scp und hier für rsync . Da letztere meine Antwort enthält, aber keine Antwort akzeptiert wurde, werde ich sie hier wiederholen.
Wie Sie bemerkt, können Sie
rsync
‚s-e | --rsh
Option, aber es wird ein bisschen komplizierter sein:Wenn Ihre Version von
ssh
neu genug ist (OpenSSH> = v7.3), können Sie die Option-J
(ProxyJump
) verwendenBeachten Sie, dass ich verwende
-A
(Agent - Forwarding) , aber es sollte mit Passwort - Authentifizierung auch arbeiten , wenn Sie keine Tasten, und, natürlich, Sie ersetzen könnenproxy
mitB
unddest
mitC
in Ihrem Beispiel.Wenn Sie zufällig nicht über eine ausreichend neue
ssh
Version verfügen (> = 5.3, IIRC), können Sienetcat
anstelle der-W
Option Folgendes verwendenssh
:Wie bereits in den Kommentaren erwähnt, können Sie das
ProxyCommand
in Ihre$HOME/.ssh/config
Datei einfügen, sodass Sie keine so komplizierte Befehlszeile benötigen. Fügen Sie im Einzelnen Folgendes hinzu:Oder verwenden Sie
ProxyJump
für OpenSSH> = v 7.3:Dann sollten Sie in der Lage sein:
quelle