Teraz używam rsync z -e 'ssh -p 10022'
opcją określenia portu.
Mam już ustawienie ssh ~/.ssh/config
.
Host myvps
HostName example.com
User ironsand
Port 10022
Czy mogę łatwo używać tej konfiguracji z rsync? Czy mogę utworzyć ~/.rsync
i ustawić domyślny port dla określonego serwera?
To mi nie zadziałało. Mam Jump Hosting w mojej ~ / .ssh / config
ssh: Nie można rozpoznać nazwy hosta vm-app01 : podana nazwa węzła lub nazwa serwera, lub nieznana rsync: połączenie niespodziewanie zamknięte (do tej pory otrzymano 0 bajtów) [nadawca] błąd rsync: niewyjaśniony błąd (kod 255) w / SourceCache / rsync / rsync- 42 / rsync / io.c (452) [nadawca = 2.6.9]
Działa to jednak dobrze
Edytuj, udało mi się ominąć rozpoznawanie nazw, zmuszając rsync ssh do załadowania pliku konfiguracyjnego z -F sudo rsync -az -e "ssh -F /Users/kbroughton/.ssh/config"
Pomija jeden błąd, ale przechodzi na inny. Odmowa dostępu (publickey, gssapi-keyex, gssapi-with-mic). ssh_exchange_identification: Połączenie zamknięte przez zdalny host
Próbowano także jawnie ustawić -i i użytkownik @ w połączeniu, ale występuje ten sam błąd.
EDYTOWAĆ
Kolejny punkt danych. Jeśli użyję zmiennoprzecinkowego adresu IP pivot vm (Jump Host) zamiast jego nazwy, vm-pivot rsync działa. Ale jawne zrzutowanie wszystkich moich ssh / config w -e „ssh” nie działa. Szczegóły: lokalny Mac, uaktualniony do rsync 3.1.0, zdalne centos rsync 3.0.9.
To działa
źródło
@darKoram. W przypadkach, w których wywołujesz ssh ze niestandardową ścieżką i próbujesz użyć ssh w ProxyCommand, jest to problem, ponieważ nie ma dziedziczenia. Masz dwie opcje: bezpośrednio podaj ten sam plik w poleceniu wewnętrznym lub dynamicznie zhakuj go. Szczegółowy opis możesz znaleźć w moim blogu na ten temat: http://hubbitus.info/wiki/Blog:Ssh_forwarding_with_same_config_file_hack
Krótko w twojej sytuacji powinna pomóc konfiguracja taka jak:
źródło
@darKoram. Uruchom proces SSH za pomocą sudo:
sudo / usr / local / bin / rsync -az -e "sudo -u user ssh" /var/data/sources/data.tar.gz vm-app01: / home / user
źródło
@darKoram
Jaka jest pełna nazwa DNS „vm-app01”? Musi być publiczny, ponieważ twierdzisz, że możesz go osiągnąć w ssh bez rsync. Ale oczekujesz, że ssh złapie twojego hosta za pomocą wzorca „21ct-dev1- *”. Naprawdę nie widzę, jak to może działać w jakikolwiek sposób. Jeśli spróbujesz wzorować nazwy hostów, powinno to wyglądać mniej więcej tak:
Następnie wywołanie rsync powinno wyglądać mniej więcej tak:
Jak rozwiązać problem „vm-app01”? Plik hostów, wygrane, nis, nss? Czy masz pseudonim? Czy jesteś w domenie? Z pewnością wygląda to jak „prosty” problem DNS.
źródło