Med Net::SFTP::Foreigns OpenSSH-backend kan proxy-routing udtrykkes som en SSH-indstilling. Modulets dokumenterede more-parameter accepterer et array af 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;

Det forudsætter en eksisterende OpenBSD-kompatibel nc-hjælper. OpenSSH kører den lokalt for at oprette en SOCKS5-forbindelse til SFTP-destinationen. Pladsholderne leverer den vært og port, som SSH har valgt. For at nå en offentlig SFTP-server gennem en tilladt offentlig mellemmand skal du vælge et endepunkt uden konto fra SOCKS5-proxy listen til hjælperen; det skal tillade den SSH-destination og -port.

Argumentgrænsen er vigtig: -o er ét argument, og hele ProxyCommand-tildelingen er det næste. Net::SFTP::Foreigns more-parameter behandler ikke automatisk en vilkårlig streng med flere SSH-argumenter som et array.

En applikation kan også beholde ProxyCommand i sin almindelige SSH Host-konfiguration og give det værtsalias videre til Net::SFTP::Foreign. Brug OpenSSH-backendens konfiguration i begge former; en anden backend som Plink har sin egen indstilling-syntaks.

Relaterede artikler