Próbowałem wykonać następujące polecenie:
rsync -rvz --progress --remove-sent-files ./dir user@host:2222/path
SSH działa na porcie 2222, ale rsync nadal próbuje użyć portu 22, a następnie narzeka na brak znalezienia ścieżki, ponieważ oczywiście nie istnieje.
Chciałbym wiedzieć, czy możliwe jest rsync na zdalnym hoście na niestandardowym porcie ssh.
rsync
wielokrotnie wchodzić do dziwnego portu, ale za każdym razem rozkłada się na tyle, by zapomnieć o składni.Twój wiersz poleceń powinien wyglądać następująco:
to działa dobrze - używam go cały czas bez potrzeby stosowania nowych reguł zapory - pamiętaj tylko, że samo polecenie SSH jest ujęte w cudzysłów.
źródło
user@host:/path
gdy musisz wysłać pliki przez określony port SSH:
przykład
źródło
użyj „opcji rsh”. na przykład:
patrz: http://www.linuxquestions.org/questions/linux-software-2/rsync-ssh-on-different-port-448112/
źródło
Trochę nie na temat, ale może komuś pomóc. Jeśli musisz podać hasło i port, sugeruję użycie
sshpass
pakietu. Komenda wiersza poleceń wyglądałaby następująco:sshpass -p "password" rsync -avzh -e 'ssh -p PORT312' [email protected]:/dir_on_host/
źródło
Znalazłem to rozwiązanie na stronie Mike Hike Hostetler, które działało idealnie dla mnie.
źródło
Prawidłowa składnia polega na poleceniu Rsync użycia niestandardowej komendy SSH (dodanie -p 2222), która tworzy bezpieczny tunel do strony zdalnej za pomocą SSH, a następnie łączy się przez localhost: 873
Rsync działa jako demon na porcie TCP 873, który nie jest bezpieczny.
Od człowieka Rsync:
Które wprowadzają ludzi w błąd, aby spróbować:
To jednak instruuje go, aby łączył się z demonem Rsync na porcie 2222, którego tam nie ma.
źródło
Nie mogłem zmusić rsync do połączenia przez ssh na innym porcie, ale mogłem przekierować połączenie ssh do komputera, który chciałem przez iptables. Nie takiego rozwiązania szukałem, ale rozwiązało to mój problem.
źródło