Met de OpenSSH-backend van Net::SFTP::Foreign kan proxy-routering als SSH-optie worden uitgedrukt. De gedocumenteerde parameter more van de module accepteert een array van commandoregumenten:

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;

Dit veronderstelt een bestaand nc-hulpprogramma dat compatibel is met OpenBSD. OpenSSH voert het lokaal uit om een SOCKS5-verbinding met de SFTP-bestemming tot stand te brengen. De plaatsaanduidingen leveren de host en poort die SSH heeft gekozen. Om een openbare SFTP-server via een toegestane openbare tussenpersoon te bereiken, kiest u voor het hulpprogramma een eindpunt zonder account uit de SOCKS5-proxylijst; dat moet die SSH-bestemming en poort toestaan.

De argumentgrens is belangrijk: -o is één argument, en de volledige ProxyCommand-toewijzing is het volgende. De parameter more van Net::SFTP::Foreign behandelt een willekeurige tekenreeks met meerdere SSH-argumenten niet automatisch als array.

Een toepassing kan de ProxyCommand ook in de gewone SSH Host-configuratie laten staan en die hostalias aan Net::SFTP::Foreign doorgeven. Gebruik de configuratie van de OpenSSH-backend in beide vormen; een andere backend zoals Plink heeft zijn eigen optiesyntaxis.

Gerelateerde artikelen