Wie kann ich mit dem Befehl scp Dateien zwischen zwei Remote-Servern von meinem lokalen PC kopieren?
Remote-Server 1: IP = 67.12.21.133 & Port = 6774
Remote-Server 2: IP = 67.129.242.40 & Port = 6774
scp -rp -P 6774 [email protected]: /home/denny/testapp1.txt [email protected]:
Es gibt einen Fehler, nachdem das Passwort 67.12.21.133 eingegeben wurde.
ssh: Verbindung zum Host herstellen 67.129.242.40 Port 22: Verbindung abgelehnt
verlorene Verbindung
Antworten:
Mit können Sie
~/.ssh/config
die Ports angeben, die für die Hosts verwendet werden sollen (und um viele andere nützliche Dinge einzustellen; lesen Sie die Manpageman ssh_config
):Dabei müssen Sie die Option
-3
scp verwenden, mit der die Dateien über Ihren lokalen Computer kopiert werden. Andernfalls gibt scp den Befehl scp über ssh auf dem ersten Host aus, sodass er tatsächlich ausgeführt wirdund dann wird das ~ / .ssh / config des ersten entfernten Hosts (67.12.21.133) anstelle Ihres lokalen verwendet.
Wenn Sie Ihr
~/.ssh/config
richtig eingerichtet haben, sollte dies funktionieren:Natürlich können Sie auch den Inhalt der ~ / .ssh / config-Datei auf Ihren ersten Remote-Host kopieren und dann scp ohne die
-3
Option verwenden, wodurch die Übertragung wahrscheinlich beschleunigt wird.Oder Sie können den Trick von scp verwenden und eine solche Befehlszeile verwenden:
(Beachten Sie den unterschiedlichen Fall des Port-Parameters für ssh und scp:
ssh -p 6774
vs.scp -P 6774
)PS: Ich habe diese Informationen von der OpenSSH-Bugzilla erhalten, in die ich diese Informationen als Bug eingegeben habe: https://bugzilla.mindrot.org/show_bug.cgi?id=2020
quelle
Ich habe keine einfache Lösung gefunden, aber Sie könnten versuchen, sshfs folgendermaßen zu verwenden:
Ein anderer Weg könnte sein, ssh zu benutzen (tatsächlich nicht erfolgreich getestet):
Momentan habe ich nicht den richtigen Weg gefunden, um die beiden Passwörter einzugeben. Es fragt einige Male nach den beiden Passwörtern, akzeptiert aber niemanden. Vielleicht funktioniert es, wenn Sie die SSH-Schlüssel zwischen den Hosts austauschen. Weil du die Passwörter dann nicht brauchst.
Ich hoffe das hilft? Thomas
quelle
Laut dieser Seite im Linux Academy-Blog müssen Sie die
-P 6774
Option auch direkt vor dem zweiten Remote-Pfad verwenden:Jede Verwendung des
-P
Flags gilt nur für die nächste Position in der Befehlszeile, nicht für den gesamten Befehl. Jeder Speicherort, zwischen dem sich kein-P
und der vorherige Pfad (oder der Befehlsname [scp
]) befindet, ist standardmäßig der Standardport (22).quelle
-P: No such file or directory
.scp
als die hier angegebene.Wenn Sie Daten von einem Server auf einen anderen übertragen müssen, verwenden Sie den SCP-Befehl. Um das zu tun
Drücken Sie einfach Ctrl+ Alt+ Tauf Ihrer Tastatur, um das Terminal zu öffnen. Führen Sie beim Öffnen den folgenden Befehl aus.
Hinweis: Der Parameter -P kann verwendet werden, wenn Sie die Portnummer angeben möchten.
quelle