Можно ли указать другой порт ssh при использовании rsync?
Я пытался выполнить следующую команду:
rsync -rvz --progress --remove-sent-files ./dir user@host:2222/path
SSH работает на порту 2222, но rsync все еще пытается использовать порт 22, а затем жалуется на то, что не находит путь, потому что, конечно, он не существует.
Я хотел бы знать, можно ли rsync к удаленному хосту на нестандартном ssh-порту.
8 ответов:
командная строка должна выглядеть так:
rsync -rvz -e 'ssh -p 2222' --progress --remove-sent-files ./dir user@host:/pathэто отлично работает - я использую его все время без необходимости каких - либо новых правил брандмауэра-просто обратите внимание, что сама команда SSH заключена в кавычки.
другой вариант, в Хосте, с которого вы запускаете rsync, установите порт в файле конфигурации ssh, т. е.:
cat ~/.ssh/config Host host Port 2222затем rsync через ssh будет говорить с портом 2222:
rsync -rvz --progress --remove-sent-files ./dir user@host:/path
когда вам нужно отправить файлы через определенный порт SSH:
rsync -azP -e "ssh -p PORT_NUMBER" source destinationпример
rsync -azP -e "ssh -p 2121" /path/to/files/source user@remoteip:/path/to/files/destination
используйте опцию "rsh". например:
rsync -avz --rsh='ssh -p3382' root@remote_server_name:/opt/backupsсм.: http://www.linuxquestions.org/questions/linux-software-2/rsync-ssh-on-different-port-448112/
немного оффтоп, но может помочь кому-то. Если вам нужно передать пароль и порт я предлагаю использовать . Команды командной строки будет выглядеть так:
sshpass -p "password" rsync -avzh -e 'ssh -p PORT312' [email protected]:/dir_on_host/
Я нашел это решение на майку поход Хостетлера - сайт, который отлично работает для меня.
# rsync -avz -e "ssh -p $portNumber" user@remoteip:/path/to/files/ /local/path/
Rsync работает как демон на TCP-порту 873, незащищенный, не имеет ничего общего с SSH
от Rsync man:
Push: rsync [опция...] SRC... [ПОЛЬЗОВАТЕЛЬ@]ХОСТ:DEST
заставляет вас поверить, что ваша команда верна:
rsync-rvz --progress --remove-sent-files ./реж user@host:2222/path
однако, это инструктирует его подключиться к Rsync демон на порту 2222, который не является там.
Как уже отмечалось, правильный синтаксис заключается в том, чтобы сообщить Rsync использовать пользовательскую команду SSH (добавление-p 2222), которая будет продолжать подключаться (на удаленной стороне) к TCP 873 для rsync (используя безопасный SSH-туннель).
rsync-rvz --progress --remove-sent-files-e "ssh-p 2222" ./dir user@host / path
Я не смог получить rsync для подключения через ssh на другой порт, но я не смог перенаправить ssh-соединение на компьютер, который я хотел через iptables. Это не то решение, которое я искал, но оно решило мою проблему.
Comments