Я пытался выполнить следующую команду:
rsync -rvz --progress --remove-sent-files ./dir user@host:2222/path
SSH работает на порте 2222, но rsync все еще пытается использовать порт 22, а затем жалуется на отсутствие пути, потому что, конечно, он не существует.
Я хотел бы знать, возможно ли rsync для удаленного хоста по нестандартному порту ssh.
rsync
многократно заходить в странный порт, но каждый раз достаточно просто, чтобы забыть синтаксис.Ваша командная строка должна выглядеть так:
это работает нормально - я использую его все время без необходимости каких-либо новых правил брандмауэра - просто обратите внимание, что сама команда SSH заключена в кавычки.
источник
user@host:/path
когда вам нужно отправить файлы через определенный порт SSH:
пример
источник
используйте «опцию rsh». например:
обратитесь к: http://www.linuxquestions.org/questions/linux-software-2/rsync-ssh-on-different-port-448112/
источник
Немного оффтоп, но может кому-то помочь. Если вам нужно передать пароль и порт, я предлагаю использовать
sshpass
пакет. Команда командной строки будет выглядеть так:sshpass -p "password" rsync -avzh -e 'ssh -p PORT312' root@192.xx.xxx.xxx:/dir_on_host/
источник
Я нашел это решение на сайте Майка Хайка Хостетлера, которое отлично сработало для меня.
источник
Правильный синтаксис - указать Rsync использовать собственную команду SSH (с добавлением -p 2222), которая создает безопасный туннель для удаленной стороны с использованием SSH, а затем подключается через localhost: 873
Rsync работает как демон на TCP-порту 873, который не является безопасным.
От Rsync человек:
Что вводит людей в заблуждение, чтобы попробовать это:
Однако это указывает ему подключиться к демону Rsync через порт 2222, которого там нет.
источник
Мне не удалось заставить rsync подключиться через ssh через другой порт, но я смог перенаправить соединение ssh на компьютер, который я хотел через iptables. Это не то решение, которое я искал, но оно решило мою проблему.
источник