Я пытаюсь скопировать файл со своего сервера на другой, поэтому я использую следующую команду:
scp root@myhost /home/direc/file.tar username@secondhost:/home/dir
Я получаю сообщение об ошибке:
ssh: подключение к хосту secondhost порт 22 время ожидания подключения истекло
Я знаю, что это может быть связано с тем, что порт 22 не открыт на втором хосте
итак, как мне выполнить передачу, указав порт 21 на моем втором хосте
Попробуй
scp -P 21 root@myhost /home/direc/file.tar username@secondhost:/home/dir
Где -P означает номер порта.
Два недостатка я вижу в вашей попытке и в ответе.
1) scp - это утилита secure shell (ssh) для безопасного копирования файлов между хостами. Он использует ssh для передачи данных и использует ту же аутентификацию и обеспечивает ту же безопасность, что и ssh (см. Справочную страницу scp). По умолчанию ssh использует порт 22. Таким образом, если вы не изменили номер порта по умолчанию для ssh на целевом сервере на 21 или не установили и не запустили ssh-сервер (sshd) на принимающем сервере, вы не можете использовать scp для копирования файлов.
2) Правильная командная строка из вашего примера должна быть:
scp -P '*port running ssh on destination server*' /home/direc/file.tar username@remotehost:/home/dir
Первый root@myhost
не является необходимым и фактически попытается скопировать файл с именем root@myhost
(который, скорее всего, не существует) и файл.tar на целевой сервер. Скорее всего, вы получите сообщение:
root@myhost: No such file or directory during the copy.