Можно ли указать другой порт 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/
немного offtopic, но может помочь кому-то. Если вам нужно передать пароль и порт я предлагаю использовать . Команды командной строки будет выглядеть так:
sshpass -p "password" rsync -avzh -e 'ssh -p PORT312' root@192.xx.xxx.xxx:/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 ./ dir user@host:2222/path
однако, это указание ему подключиться к Rsync демон на порту 2222, которого нет там.
Как уже отмечалось, правильный синтаксис заключается в том, чтобы сказать Rsync использовать пользовательскую команду SSH (добавление-p 2222), которая будет продолжать подключаться (на удаленной стороне) к TCP 873 для rsync (используя безопасный SSH-туннель).
по rsync -РВЗ --прогресс --удалить-отправлено-файлы -э "СШ -п 2222" ./ dir user@host / path
Я не смог получить rsync для подключения через ssh на другом порту, но я смог перенаправить ssh-соединение на компьютер, который я хотел через iptables. Это не то решение, которое я искал, но оно решило мою проблему.