SCP с двумя разными портами

Как использовать команду scp для копирования файлов между двумя удаленными серверами с моего локального ПК?

удаленный сервер 1: IP = 67.12.21.133 & amp; порт = 6774

удаленный сервер 2: IP = 67.129.242.40 & amp; port = 6774

scp -rp -P 6774 denny@67.12.21.133: /home/denny/testapp1.txt denny@67.129.242.40:

Выдает ошибку после ввода пароля 67.12.21.133,

ssh: соединение с хостом 67.129.242.40, порт 22: соединение отклонено

потеряно соединение

15
задан 21 June 2012 в 09:15

4 ответа

Я не нашел легкого решения, но Вы могли попытаться использовать sshfs следующий путь:

mkdir /tmp/h1
mkdir /tmp/h2

sshfs -p 6774 user1@host1:/public /tmp/h1
sshfs -p 2211 user2@host2:/data/src /tmp/h2

cp /tmp/h1/files.* /tmp/h2

fusermount -u /tmp/h1
fusermount -u /tmp/h2

Иначе мог быть должен использовать ssh (на самом деле не успешный протестированный):

ssh user1@host1 "cat /public/file.bin" | ssh user2@host2 "cat >/data/file.bin"

В настоящее время я не делаю нашел правильный способ ввести эти два пароля. Это просит несколько раз эти два пароля, но не принимает никого. Возможно, при обмене ssh ключами между хостами, это работает. Поскольку Вам, чем не нужны пароли.

Я надеюсь, что это помогает? Thomas

8
ответ дан 21 June 2012 в 09:15

Можно использовать ~/.ssh/config указывать порты для использования для хостов (и для установки многих других хороших вещей; проверьте страницу справочника man ssh_config):

# ~/.ssh/config

Host 67.12.21.133
  Port 6774

Host 67.129.242.40
  Port 6774

При выполнении этого необходимо использовать опцию -3 к scp, который копирует файлы через Вашу локальную машину. Иначе scp дает scp команду через ssh на первом хосте, таким образом, это на самом деле работает

 ssh -p 6774 denny@67.12.21.133 scp -rp /home/denny/testapp1.txt denny@67.129.242.40:

и затем ~/.ssh/config первого удаленного хоста (67.12.21.133) используется вместо Вашего локального.

Когда у Вас есть установка Ваш ~/.ssh/config правильно, это должно работать:

scp -rp3 denny@67.12.21.133:/home/denny/testapp1.txt denny@67.129.242.40:

Конечно, можно также скопировать содержание ~/.ssh/config файл на первый удаленный хост, и затем можно использовать scp без -3 опция, которая будет, вероятно, speeden передача.

Или можно использовать прием, что использование scp и использует такую командную строку:

ssh -p 6774 denny@67.12.21.133 scp -rp -P 6774 /home/denny/testapp1.txt denny@67.129.242.40:

(Отметьте другой случай параметра порта для ssh и scp: ssh -p 6774 по сравнению с. scp -P 6774)

PS: Я получил эту информацию от OpenSSH bugzilla, где я ввел это как ошибку: https://bugzilla.mindrot.org/show_bug.cgi? id=2020

19
ответ дан 21 June 2012 в 09:15

Согласно этой странице в блоге Linux Academy, вам просто нужно использовать опцию -P 6774 прямо перед вторым удаленным путем:

scp -rp -P 6774 denny@67.12.21.133:/home/denny/testapp1.txt -P 6774 denny@67.129.242.40:

Каждое использование флаг -P применяется только к следующему месту в командной строке, а не ко всей команде. Любое местоположение, которое не имеет -P между ним и предыдущим путем (или именем команды [scp]), по умолчанию использует стандартный порт (22).

0
ответ дан 21 June 2012 в 09:15

Если вам нужно перенести данные с одного сервера на другой, используйте команду SCP. Для этого

Просто нажмите Ctrl + Alt + T на клавиатуре, чтобы открыть терминал. Когда он откроется, выполните команду ниже.

scp -pr root@192.168.1.2:/path/to/files /destination/path

Примечание. Параметр -P можно использовать, если вы хотите указать номер порта.

0
ответ дан 21 June 2012 в 09:15

Другие вопросы по тегам:

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