Med OpenSSH-backend i Net::SFTP::Foreign kan proxy-routing uttryckas som ett SSH-alternativ. Modulens dokumenterade parameter more accepterar en array av kommandoparametrar:

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;

Detta förutsätter en befintlig OpenBSD-kompatibel nc-hjälpare. OpenSSH kör den lokalt för att upprätta en SOCKS5-anslutning till SFTP-målet. Platshållarna anger värden och porten som SSH valde. För att nå en offentlig SFTP-server via en tillåten offentlig mellanhand väljer du en slutpunkt utan konto från SOCKS5-proxylistan för hjälparen; den måste tillåta det SSH-målet och den porten.

Argumentgränsen spelar roll: -o är ett argument, och hela ProxyCommand-tilldelningen är nästa. Parametern more i Net::SFTP::Foreign behandlar inte automatiskt en godtycklig sträng med flera SSH-argument som en array.

Ett program kan också behålla ProxyCommand i sin vanliga SSH Host-konfiguration och skicka det värdsaliaset till Net::SFTP::Foreign. Använd OpenSSH-backendens konfiguration i endera formen; en annan backend som Plink har sin egen alternativsyntax.

Relaterade artiklar