Перенос файла с одного сервера на другой сервер, инициированный с третьего компьютера

293
SBO

Я пытаюсь сделать перевод сайта на сайт со следующей конфигурацией. У меня есть старый сервер (сервер-A), новый сервер (сервер-B) и моя рабочая станция (wks), на которой я хотел бы запустить передачу.

Обмен ключами SSH был сделан между wks и server-A / B.

Сервер-A и сервер-B не имеют обмененных ключей.

Я попробовал следующую команду с моей рабочей станции

scp -r root@server-A:/path/to/source/ root@server-B:/destination/path 

но это не работает Насколько я понимаю, сервер A пытается подключиться к серверу B, и, поскольку обмен ключами не выполняется, происходит сбой.

Есть идеи, как заставить передачу файлов работать для этой конкретной конфигурации?

0
Загрузите файлы на свою рабочую станцию, затем загрузите их на другой сервер. Appleoddity 5 лет назад 0
ssh на сервер A, запустите scp на сервере A (одна команда). Избегает копирования файлов дважды. dirkt 5 лет назад 0
Спасибо, но не спасибо, цель состоит в том, чтобы избежать соединения на сервере A и B, и сделать это "удаленно". SBO 5 лет назад 0

1 ответ на вопрос

2
Kamil Maciorowski

Передача файлов с использованием прямого соединения между сервером A и сервером B является предпочтительным методом. Это то, что scpпытается сделать. Соответствующая часть man 1 scp:

-3
Копии между двумя удаленными хостами передаются через локальный хост. Без этой опции данные копируются непосредственно между двумя удаленными хостами. Обратите внимание, что эта опция отключает индикатор прогресса.

Вы правы, что без -3опции «сервер-А пытается подключиться к серверу-Б». Мои тесты показывают, что, даже если сервер-B разрешает аутентификацию на основе пароля, взаимодействие с tty (при запросе пароля), скорее всего, будет проблемой. В таком случае этот комментарий кажется полезным:

sshна сервер A, запустите scpна сервере A (одна команда). Избегает копирования файлов дважды.

После того, как вы явно войдете sshв сервер-A, у вас scpне должно возникнуть проблем с взаимодействием с tty при запросе пароля для сервера-B. В качестве альтернативы вы можете sshвойти в сервер-B и вызвать scpтам.

Если это невозможно (требуется ключ, пароль запрещен), используйте scp -3на своей рабочей станции. Очевидно, что это будет использовать ваш локальный компьютер в качестве прокси-сервера, поэтому данные будут передаваться по его сетевым подключениям.

Хотя не все scpреализации поддерживают -3.

Похожие вопросы