Пусть rsync повторно использует псевдоним узла SSH через HTTP-прокси
Подключите помощник HTTP CONNECT к конфигурации SSH, которую использует транспорт удалённой оболочки rsync.
Для 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 — не имя пользователя прокси.