Net::SFTP::Foreign ส่งตัวเลือกพร็อกซีไปยัง OpenSSH
ระบุ ProxyCommand เป็นอาร์กิวเมนต์ตัวเลือก SSH หนึ่งตัวผ่านพารามิเตอร์สาธารณะ more ของ Net::SFTP::Foreign
ด้วยแบ็กเอนด์ OpenSSH ของ Net::SFTP::Foreign การกำหนดเส้นทางผ่านพร็อกซีสามารถแสดงเป็นตัวเลือก 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;วิธีนี้ถือว่ามี nc helper ที่เข้ากันได้กับ OpenBSD อยู่แล้ว OpenSSH จะเรียกใช้มันในเครื่องเพื่อสร้างการเชื่อมต่อ SOCKS5 ไปยังปลายทาง SFTP ตัวแทนตำแหน่งจะให้โฮสต์และพอร์ตที่ SSH เลือก สำหรับการเข้าถึงเซิร์ฟเวอร์ SFTP สาธารณะผ่านตัวกลางสาธารณะที่ได้รับอนุญาต ให้เลือกปลายทางที่ไม่ต้องใช้บัญชีจากรายการพร็อกซี SOCKS5สำหรับ helper นั้นจะต้องอนุญาตปลายทาง SSH และพอร์ตดังกล่าว
ขอบเขตของอาร์กิวเมนต์สำคัญ: -o เป็นอาร์กิวเมนต์หนึ่งตัว และการกำหนด ProxyCommand ทั้งหมดเป็นอาร์กิวเมนต์ถัดไป พารามิเตอร์ more ของ Net::SFTP::Foreign ไม่ได้ถือว่าสตริงใด ๆ ที่มีอาร์กิวเมนต์ SSH หลายตัวเป็นอาร์เรย์โดยอัตโนมัติ
แอปพลิเคชันยังสามารถเก็บ ProxyCommand ไว้ในการกำหนดค่า SSH Host ตามปกติและส่งชื่อแทนโฮสต์นั้นให้ Net::SFTP::Foreign ใช้การกำหนดค่าของแบ็กเอนด์ OpenSSH ได้ทั้งสองรูปแบบ แบ็กเอนด์อื่นอย่าง Plink มีไวยากรณ์ตัวเลือกของตนเอง