Net::SFTP::Foreign передає параметри проксі до OpenSSH
Передайте ProxyCommand як один аргумент параметра SSH через публічний параметр more у Net::SFTP::Foreign.
З бекендом OpenSSH у Net::SFTP::Foreign маршрутизацію через проксі можна виразити як параметр SSH. Документований параметр модуля more приймає масив аргументів команди:
use Net::SFTP::Foreign;
my $sftp = Net::SFTP::Foreign->new(
'files.example.net',
user => 'operator',
more => [
'-o',
'ProxyCommand=nc -X 5 -x proxy.example.net:1080 %h %p',
],
);
die $sftp->error if $sftp->error;Це передбачає наявну сумісну з OpenBSD допоміжну програму nc. OpenSSH запускає її локально, щоб установити з'єднання SOCKS5 із пунктом призначення SFTP. Заповнювачі передають вибрані SSH хост і порт. Щоб досягти публічного SFTP-сервера через дозволеного публічного посередника, виберіть для цієї програми кінцеву точку без облікового запису з списку проксі SOCKS5; вона має дозволяти цей пункт призначення та порт SSH.
Межа аргументів важлива: -o — це один аргумент, а все призначення ProxyCommand — наступний. Параметр more у Net::SFTP::Foreign не сприймає довільний рядок із кількома аргументами SSH як масив автоматично.
Застосунок може також залишити ProxyCommand у своїй звичайній конфігурації SSH Host і передати цей псевдонім хоста в Net::SFTP::Foreign. Використовуйте конфігурацію бекенда OpenSSH у будь-якій із двох форм; інший бекенд, наприклад Plink, має власний синтаксис параметрів.