Можно ли указать другой порт 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
Ответ 4
используйте опцию rsh. например:
rsync -avz --rsh='ssh -p3382' [email protected]_server_name:/opt/backups
обратитесь к: http://www.linuxquestions.org/questions/linux-software-2/rsync-ssh-on-different-port-448112/
Ответ 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. Это не то решение, которое я искал, но оно решило мою проблему.