SCP z jednego zewnętrznego serwera na inny

12

Próbuję użyć SCP na moim lokalnym serwerze, aby skopiować plik z jednego zdalnego serwera na inny zdalny serwer (oba zdalne serwery używają niestandardowego portu (xxxx)

Próbuję:

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

Ale pojawia się następujący błąd:

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

Jakieś sugestie?

Jaszczurka
źródło
Zakładam, że możesz normalnie ssh do xxx.xxx.xxx.222?
Tak, mogę ssh do wszystkich serwerów ze wszystkich serwerów
Lizard
Cross opublikował tutaj: serverfault.com/questions/81650/…
Wstrzymano do odwołania.

Odpowiedzi:

17

czy sprawdziłeś, czy bezpośrednie uwierzytelnianie działa z pierwszego zdalnego hosta na drugi?

scp user@host:/file user@otherhost:/otherfile jest skrótem od

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

co każe mi myśleć:

ssh -p XXX user@host scp -P XXX /file user@otherhost:/otherfile może zadziałać.

jhwist
źródło
1
Tak, mam ssh'd na obu serwerach z każdego serwera :(
Lizard
Dobra uwaga, tylko dlatego, że widać xxx.222, nie oznacza, że ​​xxx.111 może.
To dobra uwaga, ale już to sprawdziłem, jakieś inne sugestie?
Jaszczurka
SSH to SCP robi to, czego potrzebuję.
Jaszczurka
3

Wygląda na to, scpże nie zdaje sobie sprawy, że specjalny port powinien być również używany na drugim serwerze. Możesz spróbować jawnie zadzwonić, sshaby rozpocząć zdalny scptransfer:

ssh -P xxxx user@host scp -P xxxx /file user@otherhost:/otherfile
coś
źródło
3

Zdefiniuj serwery w swoim .ssh/config file, na przykład:

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

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

Następnie możesz po prostu zrobić:

scp foobar:file foobar2:

i użyje zdefiniowanych niestandardowych portów.

sameproblemIhad
źródło
3

Mam zdalne serwery, które nie widzą się nawzajem, ale mój lokalny serwer widzi oba. Demon ssh na zdalnych serwerach nasłuchuje w różnych niestandardowych portach ssh. Oto jak to zrobić:

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

Drugie polecenie ssh najpierw pyta o hasło, a następnie remote1 pyta o hasło dla użytkownika A. Możesz mieć to zautomatyzowane, jeśli skonfigurowałeś klucze autoryzowane przez ssh, co nie ma miejsca w moim środowisku.

Bożek chiński
źródło