Net::SFTP::Foreign-ის OpenSSH ბექენდით პროქსის მარშრუტიზაცია შეიძლება გამოისახოს როგორც SSH პარამეტრი. მოდულის დოკუმენტირებული more პარამეტრი იღებს ბრძანების არგუმენტების მასივს:

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;

ეს გულისხმობს OpenBSD-თან თავსებადი nc დამხმარე პროგრამის არსებობას. OpenSSH მას ლოკალურად უშვებს SFTP დანიშნულებასთან SOCKS5 კავშირის დასამყარებლად. ჩანაცვლებითი ნიშნები აწვდიან SSH-ის მიერ არჩეულ ჰოსტსა და პორტს. საჯარო SFTP სერვერთან დაშვებული საჯარო შუამავლის მეშვეობით მისასვლელად, დამხმარე პროგრამისთვის აირჩიეთ ანგარიშის გარეშე საბოლოო წერტილი SOCKS5 პროქსების სიიდან; მან უნდა დაუშვას ეს SSH დანიშნულება და პორტი.

არგუმენტების საზღვარი მნიშვნელოვანია: -o ერთი არგუმენტია, ხოლო მთელი ProxyCommand მინიჭება — შემდეგი. Net::SFTP::Foreign-ის more პარამეტრი ავტომატურად არ განიხილავს მასივად თვითნებურ სტრიქონს, რომელიც რამდენიმე SSH არგუმენტს შეიცავს.

აპლიკაციას ასევე შეუძლია ProxyCommand თავის ჩვეულებრივ SSH Host კონფიგურაციაში დატოვოს და ეს ჰოსტის ფსევდონიმი Net::SFTP::Foreign-ს გადასცეს. გამოიყენეთ OpenSSH ბექენდის კონფიგურაცია ორივე ფორმით; სხვა ბექენდს, მაგალითად Plink-ს, აქვს საკუთარი პარამეტრების სინტაქსი.

დაკავშირებული სტატიები