Z backendem OpenSSH w Net::SFTP::Foreign trasowanie przez proxy można wyrazić jako opcję SSH. Udokumentowany parametr modułu more przyjmuje tablicę argumentów polecenia:

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;

Zakłada to istniejące narzędzie pomocnicze nc zgodne z OpenBSD. OpenSSH uruchamia je lokalnie, aby nawiązać połączenie SOCKS5 z miejscem docelowym SFTP. Symbole zastępcze dostarczają host i port wybrane przez SSH. Aby dotrzeć do publicznego serwera SFTP przez dozwolonego publicznego pośrednika, wybierz dla narzędzia punkt końcowy bez konta z listy proxy SOCKS5; musi on zezwalać na ten cel i port SSH.

Granica argumentów ma znaczenie: -o to jeden argument, a całe przypisanie ProxyCommand to następny. Parametr more w Net::SFTP::Foreign nie traktuje automatycznie jako tablicy dowolnego ciągu zawierającego kilka argumentów SSH.

Aplikacja może też zostawić ProxyCommand w zwykłej konfiguracji SSH Host i przekazać ten alias hosta do Net::SFTP::Foreign. Używaj konfiguracji backendu OpenSSH w dowolnej z obu form; inny backend, taki jak Plink, ma własną składnię opcji.

Powiązane artykuły