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?

Eidechse
quelle
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
Cross hier gepostet: serverfault.com/questions/81650/…
Bis auf weiteres angehalten.

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.

jhwist
quelle
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
etw
quelle
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.

gleiches Problem Ich hatte
quelle
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.

Joss
quelle