Ich möchte Dateien von meinem Bürocomputer auf meinen Laptop herunterladen.
Ich kann meinen Bürocomputer über SSH mit dem Organisationsserver und dann über SSH vom Server mit meinem Bürocomputer verbinden.
Die einzigen Befehle, die der Organisationsserver akzeptiert, sind ssh, ssh1 und ssh2.
Wie kann ich eine Datei von meinem Büro- (Remote-) Computer über den Server auf meinen Laptop- (lokalen) Computer herunterladen?
Antworten:
In den vorherigen Antworten wird erwähnt, wie die ProxyJump-Direktive (hinzugefügt in OpenSSH 7.3) zum Herstellen einer Verbindung über einen Zwischenserver (normalerweise als Bastion-Host bezeichnet) verwendet wird, aber nur als Befehlszeilenargument.
Sofern es sich nicht um eine Maschine handelt, die Sie in Zukunft nicht mehr anschließen werden, ist es am besten, wenn Sie sie konfigurieren
~/.ssh/config
.Ich würde eine Datei wie:
Wenn Sie eine frühere Version von OpenSSH verwenden, die ProxyJump nicht unterstützt, ersetzen Sie diese durch die entsprechende Version:
und wenn Ihre lokale ssh-Version eine sehr alte war, die dies nicht unterstützte
-W
:Dies setzt allerdings voraus, dass die Bastion-Maschine
nc
installiert ist.Das Schöne an ssh ist, dass Sie jedes Ziel in der Datei konfigurieren können und sie sehr gut stapeln. Daher arbeiten Sie
office-machine
bei allen Tools (ssh, scp, sftp ...) als Hostnamen, da es sich um direkte Verbindungen handelte, und sie werden anhand von ssh_config herausfinden, wie eine Verbindung hergestellt werden kann. Sie können auch Platzhalter verwendenHost *.internal.company.local
, um alle Hosts, die so enden, durch eine bestimmte Bastion zu führen. Dies gilt für alle Hosts. Einmal richtig konfiguriert, wären die einzigen Unterschiede zwischen One-Hop-Verbindungen und 20 die langsameren Verbindungszeiten.quelle
Wenn Sie ein aktuelles OpenSSH (8.0) haben, können Sie den
-J
(Sprung-) Schalter verwenden :Mit älteren Versionen (mindestens jedoch 7.3) können Sie die
ProxyJump
Direktive entweder über die Befehlszeile verwenden:oder in
ssh_config
Datei, wie die Antwort von @ Ángel zeigt.Es gibt andere Optionen wie
ProxyCommand
oder Portweiterleitung, die Sie auch für ältere Versionen von OpenSSH verwenden können. Diese werden in Wird die Multihop-Anmeldung von OpenSSH unterstützt?quelle
ssh -J userA@orgserv userB@officecomp cat remote/path > local/path
scp
es nicht unterstützt wird-J
, ist es möglicherweise neu genug, um dieProxyJump
Option zu unterstützen . Versuchen Sie eine der anderen Antworten, die diese Option explizit verwenden.ssh
Fragen, die darauf hindeuten, Ihreconfig
für bestimmte Hosts zu ändern, wenn eine einfache Befehlszeilenoption ausreicht, um die Aufgabe zu erledigen.-J user@intermediate
jedes Mal zu verwenden, wenn eine Verbindung hergestellt werden muss.Manchmal können wir einfach die Pipeline benutzen. Diese Zeit ist heute.
Sie können auch hochladen
Ja, es gibt andere Lösungen, die Proxies usw. beinhalten, aber es ist nützlich zu wissen, wie man das macht.
quelle
cat
!Verwenden Sie die
ProxyJump
Konfiguration:quelle
Es gibt ein altes Protokoll namens ZMODEM : Heutzutage wird es nur von wenigen Programmen unterstützt, aber wenn es funktioniert, kann es recht praktisch sein.
Überprüfen Sie zunächst, ob das Terminalprogramm Ihres Laptops ZMODEM unterstützt. (Beispielsweise können Sie iTerm2 (auf Mac) so konfigurieren, dass es ZMODEM unterstützt. Ein Beispielskript finden Sie hier .)
Führen Sie auf Ihrem Büromaschinen Folgendes aus:
sudo apt install lrzsz
Jetzt müssen Sie nur noch ssh auf Ihren Büromaschinen ausführen
sz (filename)
. Die Datei wird über Ihr Terminal heruntergeladen.quelle
Konfiguration unter SSH des Benutzers:
~/.ssh/config
Sie können jetzt vom Intranetserver direkt über den 3- Jump-Server kopieren .
scp [email protected]:/home/user/ ./*
Ich bevorzuge dies, weil ich keine Jump-Server mehr mit scp angeben muss
quelle
Über SCP -3:
quelle
-3
Option wird als "Kopien zwischen zwei Remote-Hosts werden über den lokalen Host übertragen" beschrieben. während ich glaube, dass diese Frage besagt, dass der lokale Host nicht auf "remote2" zugreifen konnte.-3
. Dies setzt jedoch voraus, dass Sie eine Verbindung von der mittleren zur ersten Maschine herstellen können.-J
/JumpHost
. Ganz im Gegenteil, da es die Einschränkung gibt, die @Joe erwähnt.