SCP von einem externen Server zu einem anderen


12

Ich versuche, SCP auf meinem lokalen Server zu verwenden, um eine Datei von einem Remoteserver auf einen anderen Remoteserver zu kopieren (beide Remoteserver verwenden einen benutzerdefinierten Port (xxxx).

Ich versuche:

scp -r -P xxxx root@xxx.xxx.xxx.111:/home/myimages/images.tar.gz root@xxx.xxx.xxx.222:/home/myimages/images.tar.gz

Aber ich bekomme folgenden Fehler:

ssh: connect to host xxx.xxx.xxx.222 port 22: Connection timed out

Irgendwelche Vorschläge?


Ich nehme an, dass Sie normalerweise zu xxx.xxx.xxx.222 ssh können?

Ja, ich kann von allen Servern zu allen Servern ssh
Lizard

Antworten:


17

Haben Sie überprüft, ob die direkte Authentifizierung vom ersten zum zweiten Remote-Host funktioniert?

scp user@host:/file user@otherhost:/otherfile ist eine Abkürzung für

ssh user@host scp /file user@otherhost:/otherfile

was mich zum Nachdenken bringt:

ssh -p XXX user@host scp -P XXX /file user@otherhost:/otherfile könnte funktionieren.


1
Ja, ich habe beide Server von jedem Server ssh'd :(
Lizard

Guter Punkt, nur weil Sie xxx.222 sehen können, heißt das nicht, dass xxx.111 kann.

Es ist ein guter Punkt, aber ich habe das bereits überprüft, irgendwelche anderen Vorschläge?
Eidechse

Das ssh dann das scp macht was ich brauche.
Eidechse

3

Es scheint scpnicht klar zu sein, dass der spezielle Port auch auf dem zweiten Server verwendet werden sollte. Sie könnten versuchen, explizit aufzurufen ssh, um die Fernübertragung zu starten scp:

ssh -P xxxx user@host scp -P xxxx /file user@otherhost:/otherfile

3

Definieren Sie die Server in Ihrem .ssh/config fileBeispiel:

Host foobar
User youruser
Port 2222
Hostname the.real.hostname

Host foobar2
User youruser
Port 2222
Hostname the2.real.hostname

Sie können dann einfach tun:

scp foobar:file foobar2:

und es werden die definierten benutzerdefinierten Ports verwendet.


3

Ich habe Remote-Server, die sich nicht sehen können, aber mein lokaler Server kann beide sehen. Der ssh-Daemon auf den Remote-Servern überwacht verschiedene nicht standardmäßige ssh-Ports. So mache ich das:

ssh -p 111 userA@remote1 'cat myfile' | ssh -p 222 userB@remote2 'cat - > myfile'

Der zweite Befehl ssh fragt zuerst nach dem Kennwort, dann fragt remote1 nach dem Kennwort für Benutzer A. Sie können dies automatisieren lassen, wenn Sie autorisierte SSH-Schlüssel eingerichtet haben, was in meiner Umgebung nicht der Fall ist.

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.