S backendem OpenSSH v Net::SFTP::Foreign lze proxy směrování vyjádřit jako volbu SSH. Dokumentovaný parametr modulu more přijímá pole argumentů příkazu:

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;

Předpokládá to existující pomocný program nc kompatibilní s OpenBSD. OpenSSH jej spouští lokálně, aby navázal spojení SOCKS5 s cílem SFTP. Zástupné symboly dodávají hostitele a port, které SSH zvolil. Chcete-li dosáhnout veřejného serveru SFTP přes povolený veřejný prostředník, vyberte pro pomocný program koncový bod bez účtu z seznamu proxy SOCKS5; musí tento cíl a port SSH povolit.

Hranice argumentů je důležitá: -o je jeden argument a celé přiřazení ProxyCommand je další. Parametr more v Net::SFTP::Foreign automaticky nepovažuje libovolný řetězec obsahující několik argumentů SSH za pole.

Aplikace může také ponechat ProxyCommand ve své obvyklé konfiguraci SSH Host a předat tento alias hostitele do Net::SFTP::Foreign. Použijte konfiguraci backendu OpenSSH v kterékoli z obou podob; jiný backend, například Plink, má vlastní syntaxi voleb.

Související články