W transporcie SSH rsync połączenie przez proxy forward umieszcza się na aliasie hosta SSH. Dzięki implementacji nc z OpenBSD w ~/.ssh/config można wybrać proxy HTTP bez konta:

Host sync-target
    HostName files.example.net
    User syncuser
    Port 22
    ProxyCommand nc -X connect -x proxy.example.net:8080 %h %p

Proxy musi zezwalać na CONNECT do files.example.net:22. Dla publicznego hosta SSH, na którym dozwolone są publiczne pośredniki, lista proxy HTTP oferuje kandydatów na host i port proxy bez konta; sprawdź pozwolenie dla rzeczywistego celu i portu SSH. Adres -x w nc wskazuje pośrednika; %h i %p rozwijają się do celu i portu SSH. Inny program również nazwany nc może nie obsługiwać tych przełączników.

Użyj aliasu jako hosta zdalnego w rsync:

rsync -av -e ssh sync-target:/srv/export/ ./export/

Ścieżka z jednym dwukropkiem wybiera formę zdalnej powłoki. SSH używa zwykłej konfiguracji konta docelowego i klucza hosta, a pomocnik przenosi swój strumień bajtów przez proxy HTTP. Cel również potrzebuje rsync dla zdalnego polecenia.

RSYNC_PROXY konfiguruje natomiast bezpośrednie połączenie rsync z demonem. Nie konfiguruje tego wywołania SSH. Podobnie zmiana Port w SSH na 8080 wybrałaby inny port usługi docelowej, zamiast wskazać nasłuch proxy.

W razie potrzeby pozostaw uwierzytelnianie proxy na interfejsie obsługiwanym przez wybranego pomocnika; nazwa użytkownika SSH nie jest nazwą użytkownika proxy.

Powiązane artykuły