Übertragen einer Datei von einem Server auf einen anderen Server, initiiert von einem dritten Computer

407
SBO

Ich versuche eine Site-to-Site-Übertragung mit der folgenden Konfiguration durchzuführen. Ich habe einen alten Server (Server-A), den neuen Server (Server-B) und meine Workstation (WKS), auf denen ich die Übertragung starten möchte.

Ein SSH-Schlüsselaustausch wurde zwischen WKS und Server-A / B durchgeführt.

Server-A und Server-B haben keine Schlüssel ausgetauscht.

Ich habe den folgenden Befehl von meiner Workstation aus versucht

scp -r root@server-A:/path/to/source/ root@server-B:/destination/path 

aber es geht nicht. Soweit ich verstehe, versucht Server-A, sich mit Server-B zu verbinden, und da kein Schlüsselaustausch ausgeführt wird, schlägt er fehl.

Haben Sie eine Idee, wie die Dateiübertragung für diese bestimmte Konfiguration funktioniert?

0
Laden Sie die Dateien auf Ihre Workstation herunter und laden Sie sie auf den anderen Server hoch. Appleoddity vor 5 Jahren 0
ssh in Server A, starten Sie scp auf Server A (ein Befehl). Vermeidet das zweimalige Kopieren der Dateien. dirkt vor 5 Jahren 0
Danke, aber nein, der Zweck ist, die Verbindung zu Server-A und B zu vermeiden und "aus der Ferne" zu tun. SBO vor 5 Jahren 0

1 Antwort auf die Frage

2
Kamil Maciorowski

Das Übertragen von Dateien über eine direkte Verbindung zwischen Server-A und Server-B ist die bevorzugte Methode. Dies ist, was scpversucht zu tun. Der relevante Teil von man 1 scp:

-3
Kopien zwischen zwei Remote-Hosts werden über den lokalen Host übertragen. Ohne diese Option werden die Daten direkt zwischen den beiden Remote-Hosts kopiert. Beachten Sie, dass diese Option die Fortschrittsanzeige deaktiviert.

Du hast recht, dass ohne die -3Option "Server-A versucht, sich mit Server-B zu verbinden". Meine Tests zeigen, dass selbst wenn Server-B eine kennwortbasierte Authentifizierung zulässt, die Interaktion mit tty (während das Kennwort abgefragt wird) höchstwahrscheinlich das Problem ist. In diesem Fall erscheint dieser Kommentar nützlich:

sshStarten Sie scpauf Server A den Server A (ein Befehl). Vermeidet das zweimalige Kopieren der Dateien.

Nachdem Sie explizit sshin server-A scpgestartet wurden, sollte es bei der Abfrage des Kennworts für server-B kein Problem mit tty haben. Alternativ können Sie sshin Server-B und dort aufrufen scp.

Wenn dies nicht möglich ist (Schlüssel erforderlich, Kennwort nicht zulässig), verwenden Sie es scp -3auf Ihrer Workstation. Offensichtlich wird dies Ihren lokalen Computer als eine Art Proxy verwenden, so dass die Daten herunterfließen und ihre Netzwerkverbindung (en) aufbauen.

Es werden jedoch nicht alle scpImplementierungen unterstützt -3.