Для SSH-транспорту rsync з'єднання через прямий проксі задається на псевдонімі вузла SSH. З реалізацією nc від OpenBSD у ~/.ssh/config можна вибрати HTTP-проксі без облікового запису:

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

Проксі має дозволяти CONNECT до files.example.net:22. Для публічного вузла SSH, де дозволені публічні посередники, список HTTP-проксі пропонує кандидатів на вузол і порт проксі без облікового запису; перевірте дозвіл для фактичної мети SSH і порту. Адреса -x у nc вказує посередника; %h і %p розгортаються в призначення та порт SSH. Інша програма з назвою nc може не підтримувати ці ключі.

Використовуйте псевдонім як віддалений вузол у rsync:

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

Шлях з однією двокрапкою вибирає форму віддаленої оболонки. SSH використовує звичайну конфігурацію цільового облікового запису та ключа вузла, а помічник передає свій байтовий потік через HTTP-проксі. Призначення також потребує rsync для віддаленої команди.

RSYNC_PROXY натомість налаштовує пряме з'єднання rsync з демоном. Він не налаштовує цей виклик SSH. Так само зміна Port у SSH на 8080 вибрала б інший порт служби призначення, а не вказала б слухач проксі.

За потреби тримайте автентифікацію проксі на інтерфейсі, який підтримує обраний помічник; ім'я користувача SSH не є ім'ям користувача проксі.

Схожі статті