Как я могу использовать команду scp для копирования файлов между двумя удаленными серверами с моего локального ПК?
удаленный сервер 1: IP = 67.12.21.133 и порт = 6774
удаленный сервер 2: IP = 67.129.242.40 и порт = 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: соединение отказано
потерянное соединение
Ответы:
Вы можете использовать,
~/.ssh/config
чтобы указать порты, которые будут использоваться для хостов (и для настройки многих других полезных вещей; проверьте страницу руководстваman ssh_config
):При этом вы должны использовать опцию
-3
scp, которая копирует файлы через ваш локальный компьютер. В противном случае, scp выдает команду scp через ssh на первом хосте, поэтому он на самом деле выполняетсяи затем ~ / .ssh / config первого удаленного хоста (67.12.21.133) используется вместо вашего локального.
Когда вы настроили
~/.ssh/config
правильно, это должно работать:Конечно, вы также можете скопировать содержимое файла ~ / .ssh / config на ваш первый удаленный хост, а затем вы можете использовать scp без
-3
опции, которая, вероятно, ускорит передачу.Или вы можете использовать трюк, который использует scp, и использовать такую командную строку:
(Обратите внимание на другой случай параметра порта для ssh и scp:
ssh -p 6774
vs.scp -P 6774
)PS: я получил эту информацию от Bugzilla OpenSSH, где я ввел это как ошибку: https://bugzilla.mindrot.org/show_bug.cgi?id=2020
источник
Я не нашел простого решения, но вы можете попробовать использовать sshfs следующим образом:
Другим способом может быть использование ssh (на самом деле не проверено успешно):
В настоящее время я не нашел правильный способ ввода двух паролей. Несколько раз он запрашивает два пароля, но никого не принимает. Может быть, если вы обменяете ключи ssh между хостами, это работает. Потому что вам не нужны пароли.
Надеюсь, это поможет? Томас
источник
Согласно этой странице в блоге Linux Academy, вам просто нужно использовать
-P 6774
опцию прямо перед вторым удаленным путем:Каждое использование
-P
флага применяется только к следующему месту в командной строке, а не ко всей команде. Любое местоположение, которое не имеет-P
между ним и предыдущим путем (или именем команды [scp
]), по умолчанию использует стандартный порт (22).источник
-P: No such file or directory
.scp
чем та, на которую ссылаются здесь.Если вам нужно перенести данные с одного сервера на другой, используйте команду SCP. Сделать так
Просто нажмите Ctrl+ Alt+ Tна клавиатуре, чтобы открыть терминал. Когда он откроется, выполните команду ниже.
Примечание. Параметр -P можно использовать, если вы хотите указать номер порта.
источник