Verwenden Sie SCP über eine vorhandene SSH-Kette? Möglich?

0

SCP stellt beim Kopieren von Dateien eine neue Verbindung her, was es manchmal schwierig machen kann, wenn Firewalls beteiligt sind.

Zum Beispiel,

Host-A <-> Host-B <-> Host-C <-> Host-D

  • Host-A ist über SSH mit Host-B verbunden, und dann ist Host-B über SSH mit Host-C und dann mit Host-D verbunden.
  • Host-A kann keine Verbindung zu anderen Computern als Host-B herstellen, Host-B kann nur eine Verbindung zu Host-A und Host-C herstellen, Host-C kann nur eine Verbindung zu Host-B und Host-D herstellen und letzter Host-D kann Stellen Sie nur eine Verbindung zu Host-C her.

Der Befehl (auf Host-D) scp / home / benutzer / datei Host-A: / home / benutzer / neue datei versucht, einen neuen SSH-Tunnel zwischen den beiden zu erstellen, was nicht das ist, was ich will. Ich möchte, dass die vorhandene SSH-Tunnelkette die Datei über die vorherigen Hosts zurückkopiert, bis sie Host-A erreicht.

Wie kann ich das machen?

TrevorKS
quelle

Antworten:

0

Sie können vorhandene Verbindungen wiederverwenden. Verwenden Sie entweder die Befehlszeilenoption -Moder die (Client-) Konfigurationsoption ControlMaster. Weitere Informationen finden Sie in dieser Antwort auf StackOverflow.

Ich habe dies ausgiebig genutzt, kombiniert mit ControlPersist, um die Verbindung erst nach einer Verzögerung zu schließen. Dies vermeidet die Verbindungszeit, die Ihnen sonst entstehen würde, und verbessert die Leistung drastisch, wenn Sie die Verbindung mehrmals schließen und wiederherstellen (wie ich es bei der interaktiven Verwendung oft tue).

Beachten Sie, dass dies bei der Verbindung mit einigen Hosts (z. B. GitHub) nicht sehr gut funktioniert. Daher müssen Sie möglicherweise bestimmte Hosts explizit von der Verwendung dieser Option ausschließen, wenn Sie sie als Standard festlegen.

jpaugh
quelle
1
Oh, und wenn die Verbindung hängen bleibt, können Sie einfach die ControlMasterDatei für die Verbindung löschen und die Verbindung wiederherstellen.
Jpaugh