Net::SFTP::Foreign reicht Proxy-Optionen an OpenSSH weiter
Übergeben Sie einen ProxyCommand als ein SSH-Optionsargument über den öffentlichen Parameter more von Net::SFTP::Foreign.
Mit dem OpenSSH-Backend von Net::SFTP::Foreign lässt sich Proxy-Routing als SSH-Option ausdrücken. Der dokumentierte Parameter more des Moduls nimmt ein Array von Kommandoargumenten entgegen:
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;Das setzt einen vorhandenen nc-Helfer voraus, der mit OpenBSD kompatibel ist. OpenSSH startet ihn lokal, um eine SOCKS5-Verbindung zum SFTP-Ziel aufzubauen. Die Platzhalter liefern den von SSH gewählten Host und Port. Um einen öffentlichen SFTP-Server über einen erlaubten öffentlichen Vermittler zu erreichen, wählen Sie für den Helfer einen konto-freien Endpunkt aus der SOCKS5-Proxy-Liste; er muss dieses SSH-Ziel und diesen Port zulassen.
Die Argumentgrenze ist entscheidend: -o ist ein Argument, die gesamte ProxyCommand-Zuweisung ist das nächste. Der Parameter more von Net::SFTP::Foreign behandelt eine beliebige Zeichenkette mit mehreren SSH-Argumenten nicht automatisch als Array.
Eine Anwendung kann den ProxyCommand auch in ihrer gewohnten SSH-Host-Konfiguration belassen und diesen Host-Alias an Net::SFTP::Foreign übergeben. Nutzen Sie die Konfiguration des OpenSSH-Backends in beiden Formen; ein anderes Backend wie Plink hat seine eigene Optionssyntax.