SCP von einem Server auf einen anderen Server?


34

Ich versuche, Dateien von einem Server direkt auf einen anderen zu kopieren und dabei meinen lokalen Computer zu umgehen.

Ich tat

scp -r usrname@server1.com:~/data/* usrname@server2.com:~/data/
Password: 
Host key verification failed.
lost connection

Ist das überhaupt möglich? Wie kann ich das beheben?


Können Sie die Ausgabe des folgenden Befehls -scp -r -v usrname@server1.com posten: ~ / data / * usrname@server2.com: ~ / data /
pragmatic

Antworten:


55

Etwas, das ich ziemlich oft benutze, wenn keine Verbindung zwischen den beiden Servern möglich ist

scp -3 user@server1:/path/to/file user@server2:/path/to/file

Quelle

-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.

Vorausgesetzt, Sie haben eine gute Verbindung zu beiden, es ist nicht zu langsam.


Wenn Sie außerdem auf beiden Servern spezielle Ports verwenden müssen: superuser.com/questions/686394/…
Pit

Vergessen Sie nicht, das -rFlag hinzuzufügen, wenn Sie ein Verzeichnis kopieren.
Taylor Edmiston

16

Ja , das ist möglich, aber nur , wenn server1.comerreichen kann server2.comdurch die Verwendung dieses Namens. Wenn nicht, erhalten Sie wahrscheinlich eine Nachricht:ssh: connect to host server2 port 22: Connection refused

Die manSeite für gibt scpeindeutig an, dass zwischen Hosts in einem Netzwerk kopiert wird und dass:

Kopien zwischen zwei Remote-Hosts sind ebenfalls zulässig.

Was Sie (einmal) tun sollten, ist sshvon username@server1.comund sshnach username@server2.com. Beantworten Sie die Authentizitätsfrage, die Sie erhalten, mit Ja, um die Hostschlüssel-Bestätigungsnachricht während des Vorgangs zu entfernenscp

Möglicherweise müssen Sie den Spediteur aktivieren mit:

scp -o "ForwardAgent yes" -r usrname@server1.com:~/data/* usrname@server2.com:~/data/

Aber stellen Sie sicher, dass Sie die Gefahr darin erkennen ( man ssh_config)


Ich bin gerade sshvon server1.combis server2.comgegangen und habe die Frage in der Tat beantwortet und war erfolgreich. Dann gehe ich zurück zu meinem lokalen Computer, mache es erneut und erhalte die server2.comPasswortabfrage. Aber es scheitert dort mit:Permission denied (publickey,keyboard-interactive). lost connection
Sibbs Gambling

1
@SibbsGambling Ich denke, dies hängt von der Weiterleitung Ihres privaten Schlüssels ab. Können Sie sich auf beiden Servern anmelden, ohne ein Passwort anzugeben? Könnten Sie sich von server1bis anmelden , server2ohne ein Passwort anzugeben? Möglicherweise müssen Sie "ForwardAgent yes" einstellen.
Anthon

1

Zuerst müssen Sie überprüfen, ob Sie in der Lage sind, ohne Fehler auf Server2 zu ssh zuzugreifen. Wenn derselbe Fehler ~/.ssh/known_hostsauftritt , öffnen Sie die Datei, suchen Sie den Server2-Schlüssel und löschen Sie sie.

Überprüfen Sie dann, ob Sie den Server anhand des Hostnamens anpingen können

Wenn nicht, bearbeiten Sie bitte beide Server-Hostdateien wie unten beschrieben

 #vi /etc/hosts  
 server1 192.186.x.x  
 server2 192.186.x.xx   
 :wq   ---> to save  

Nachdem Sie mit dieser CD fertig sind, suchen Sie den Speicherort der Datei, die Sie auf den Server2 kopieren möchten

Mit scp file_name user@server2:/path_to_the_directory ---> können Sie anstelle des angegebenen Hostnamens die IP-Adresse verwenden, -Rum ein Verzeichnis zu kopieren.


0

Überprüfen Sie, ob ~/.ssh/known_hostsfür beide Server die richtigen Datensätze vorhanden sind

Überprüfen Sie auch, ob server1 den richtigen ~/.ssh/known_hostsDatensatz für server2 hat


-2

Mit dem folgenden Befehl können Sie Dateien von einem Server auf einen anderen kopieren:

scp source_user@source_remote_host:/usr/bin/mysql_backup.sh \
         target_user@target_remote_host:/var/tmp/
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.