برای انتقال SSH در rsync، اتصال پروکسی پیشرو را روی نام مستعار میزبان SSH بگذارید. با پیاده‌سازی nc از OpenBSD می‌توان پروکسی HTTP بدون حساب را در ~/.ssh/config انتخاب کرد:

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 نام کاربری پروکسی نیست.

مقالات مرتبط