Med OpenSSH-backenden til Net::SFTP::Foreign kan proxy-ruting uttrykkes som et SSH-alternativ. Den dokumenterte more-parameteren i modulen godtar en matrise med kommandoparametre:

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;

Dette forutsetter en eksisterende OpenBSD-kompatibel nc-hjelper. OpenSSH kjører den lokalt for å opprette en SOCKS5-forbindelse til SFTP-målet. Plassholderne angir verten og porten SSH valgte. For å nå en offentlig SFTP-server gjennom en tillatt offentlig mellommann, velg et endepunkt uten konto fra SOCKS5-proxylisten for hjelperen; det må tillate det SSH-målet og den porten.

Argumentgrensen er viktig: -o er ett argument, og hele ProxyCommand-tildelingen er det neste. more-parameteren i Net::SFTP::Foreign behandler ikke automatisk en vilkårlig streng med flere SSH-argumenter som en matrise.

En applikasjon kan også beholde ProxyCommand i sin vanlige SSH Host-konfigurasjon og sende det vertsaliaset til Net::SFTP::Foreign. Bruk konfigurasjonen til OpenSSH-backenden i begge former; en annen backend som Plink har sin egen alternativsyntaks.

Relaterte artikler