Можно ли указать другой порт ssh при использовании rsync?

Я пытаюсь выполнить следующую команду:

rsync -rvz --progress --remove-sent-files ./dir [email protected]:2222/path

SSH работает на порту 2222, но rsync все еще пытается использовать порт 22, а затем жалуется на то, что не найдет путь, потому что, конечно, его не существует.

Я хотел бы знать, можно ли rsync на удаленном хосте на нестандартном ssh-порту.

Ответ 1

Другой вариант, на хосте, с которого вы запускаете rsync, установите порт в файле конфигурации ssh, то есть:

cat ~/.ssh/config
Host host
    Port 2222

Затем rsync over ssh будет разговаривать с портом 2222:

rsync -rvz --progress --remove-sent-files ./dir [email protected]:/path

Ответ 2

Ваша командная строка должна выглядеть так:

rsync -rvz -e 'ssh -p 2222' --progress ./dir [email protected]:/path

это работает нормально - я использую его все время без необходимости каких-либо новых правил брандмауэра - просто обратите внимание, что сама команда SSH заключена в кавычки.

Ответ 3

когда вам нужно отправлять файлы через определенный SSH-порт:

rsync -azP -e "ssh -p PORT_NUMBER" source destination

Пример

rsync -azP -e "ssh -p 2121" /path/to/files/source [email protected]:/path/to/files/destination

Ответ 5

Немного оффтопик, но может помочь кому-то. Если вам нужно передать пароль и порт, я предлагаю использовать пакет sshpass. Команда командной строки будет выглядеть так: sshpass -p "password" rsync -avzh -e 'ssh -p PORT312' [email protected]:/dir_on_host/

Ответ 6

Я нашел это решение на сайте Майка Хайка Хостетлера, которое отлично сработало для меня.

# rsync -avz -e "ssh -p $portNumber" [email protected]:/path/to/files/ /local/path/

Ответ 7

Правильный синтаксис - указать Rsync использовать собственную команду SSH (с добавлением -p 2222), которая продолжит подключение (на удаленной стороне) к TCP 873 для rsync (с использованием безопасного туннеля SSH).

rsync -rvz - -p rogress --remove-sent-files -e "ssh -p 2222"./dir user @host/path

Rsync работает как демон на TCP-порту 873

От Rsync человек:

Нажмите: rsync [ОПЦИЯ...] SRC... [ПОЛЬЗОВАТЕЛЬ @] ВЕДУЩИЙ: DEST

Что вводит людей в заблуждение, чтобы попробовать это:

rsync -rvz - -p rogress --remove-sent-files./dir user @host: 2222/path

Однако это указывает ему подключиться к демону Rsync через порт 2222, которого там нет.

Ответ 8

Мне не удалось заставить rsync подключиться через ssh через другой порт, но я смог перенаправить соединение ssh на компьютер, который я хотел через iptables. Это не то решение, которое я искал, но оно решило мою проблему.