Ich stelle regelmäßig fest, dass ich eine Datei von einer Remote-Terminalsitzung auf meinen lokalen Computer kopieren möchte. Normalerweise melde ich mich von der Remote-Sitzung ab und rufe eine scp-Übertragung von local auf, um die Datei von remote auf local zu kopieren. Aber das fühlt sich etwas langatmig an. Ich möchte die Datei übertragen, während ich über SSH an der Fernbedienung angemeldet bin, um Zeit zu sparen. Mein lokaler Computer ist über einen dynamischen IP-Bereich mit dem Internet verbunden, sodass ich mir nie ganz sicher bin, wie ich eine Remoteverbindung herstellen soll. Aber da die Remote-Sitzung von meinem Laptop ausgeht, muss es eine Verknüpfung in scp geben, um zu meinem Laptop zurückzukehren ... Richtig?
~C
Flucht. Schreib einfach<Enter>~C-R 12345:localhost:22<Enter>
und Sie haben Ihren Tunnel, ohne Ihre bereits eingerichtete SSH-Sitzung zu verlassen.Versuchen Sie Folgendes in der Befehlszeile des Remotecomputers. Möglicherweise müssen Sie die Portweiterleitung auf Ihrem Router aktivieren.
Quelle: Scpen Sie einfach eine Datei zurück zu dem Host, von dem aus Sie eine Verbindung herstellen (commandlinefu.com)
quelle
${SSH_CLIENT%% *}
Geben Sie die IP Ihres lokalen Rechners aus. Der gesamte Befehl öffnet also eine scp-Sitzung vom Remote-Computer zum lokalen Computer, um Dateien zu übertragen. Dies ist nur möglich, wenn Sie vom Remotecomputer aus SSH auf Ihren lokalen Computer ausführen können.export ME="${SSH_CLIENT%% *}"
in Ihre Shell-RC-Datei. Sie können dann einfach verwendenscp <file> $ME:<local path>
Könnte sein zssh ?
Es verwendet die ehrwürdigen rz, sz-Implementierungen der zmodem-Dateiübertragung.
quelle
Ich habe diese Frage positiv bewertet und möchte dies erreichen leicht auch.
Hier ist verwandte Antwort: Wie kann ich von einem Remote-Computer zu einem lokalen Computer wechseln, wenn ich mich außerhalb meines Heimnetzwerks befinde?
quelle
Eine Lösung wäre, die ssh-Sitzung auf dem lokalen Computer zu unterbrechen, die Kopie auf dem lokalen Computer durchzuführen und dann die ssh-Sitzung dort fortzusetzen, wo Sie aufgehört haben.
Angenommen, ich bin verbunden mit myuser @ remote , und ich möchte die Datei kopieren lol.txt zu meinem lokalen Computer. Zuerst möchte ich ssh auf meinem lokalen Rechner anhalten. Normalerweise würden Sie verwenden Strg - Z zu suspendieren, aber dies funktioniert nicht in ssh, weil es an die Remote-Shell gesendet wird. Stattdessen müssen Sie die Escape-Sequenz ssh verwenden Eingeben ~ . Also, um ssh auszusetzen, drücken Sie Eingeben ~ Strg - Z . Jetzt können Sie Befehle auf Ihrem lokalen Computer ausführen und ausführen
user@localmachine:~$ scp user@remote:/path-to-file/lol.txt /dest-path/lol.txt
Kopieren Sie die Datei und kehren Sie dann genau dort zu ssh zurück, wo Sie sie verlassen haben
user@localmachine:~$ fg
quelle
Wenn Sie eine einfachere Lösung wünschen, öffnen Sie einfach das Dropbox-Konto, gehen Sie zur Remote-Maschine und rufen Sie die geänderte Version von auf Hier ):
wget --no-check-certificate https://www.dropbox.com/s/2123jshf/ABC.pdf?dl=1 -O abc.pdf
quelle