SCP с одного внешнего сервера на другой

12

Я пытаюсь использовать SCP на своем локальном сервере для копирования файла с одного удаленного сервера на другой удаленный сервер (оба удаленных сервера используют собственный порт (xxxx)

Я стараюсь:

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

Но я получаю следующую ошибку:

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

Какие-либо предложения?

ящерица
источник
Я полагаю, что вы можете ssh к xxx.xxx.xxx.222 нормально?
Да, я могу ssh на все серверы со всех серверов
Lizard
Крест размещен здесь: serverfault.com/questions/81650/…
приостановлен до дальнейшего уведомления.

Ответы:

17

Вы проверили, что прямая аутентификация работает с первого удаленного хоста на второй?

scp user@host:/file user@otherhost:/otherfile это сокращение для

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

что заставляет меня думать:

ssh -p XXX user@host scp -P XXX /file user@otherhost:/otherfile может работать.

jhwist
источник
1
Да, у меня есть ssh'd для обоих серверов с каждого сервера :(
Lizard
Хороший вопрос, то, что вы видите xxx.222, не означает, что xxx.111 может.
Это хороший момент, но я уже проверил это, какие-либо другие предложения?
Ящерица
Ssh, тогда scp делает то, что мне нужно.
Ящерица
3

Кажется, что scpне понимает, что специальный порт должен также использоваться на втором сервере. Вы можете попробовать явно позвонить, sshчтобы начать удаленную scpпередачу:

ssh -P xxxx user@host scp -P xxxx /file user@otherhost:/otherfile
STH
источник
3

Определите серверы на вашем .ssh/config file, например:

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

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

Затем вы можете просто сделать:

scp foobar:file foobar2:

и он будет использовать определенные пользовательские порты.

sameproblemIhad
источник
3

У меня есть удаленные серверы, которые не могут видеть друг друга, но мой локальный сервер может видеть оба. Демон ssh на удаленных серверах прослушивает разные нестандартные порты ssh. Вот как я это сделал:

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

Вторая команда ssh сначала запрашивает пароль, затем remote1 запрашивает пароль для пользователя A. Это может быть автоматизировано, если вы настроили авторизованные ключи ssh, что не так в моей среде.

амулет
источник