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, свой синтаксис параметров.