Με το backend OpenSSH του Net::SFTP::Foreign, η δρομολόγηση μέσω διαμεσολαβητή μπορεί να εκφραστεί ως επιλογή SSH. Η τεκμηριωμένη παράμετρος more του module δέχεται έναν πίνακα ορισμάτων εντολής:

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 συμβατό με OpenBSD. Το OpenSSH το εκτελεί τοπικά για να δημιουργήσει σύνδεση SOCKS5 με τον προορισμό SFTP. Τα placeholders παρέχουν τον κεντρικό υπολογιστή και τη θύρα που επέλεξε το SSH. Για να φτάσετε σε έναν δημόσιο διακομιστή SFTP μέσω ενός επιτρεπόμενου δημόσιου μεσάζοντα, επιλέξτε ένα τελικό σημείο χωρίς λογαριασμό από τη λίστα διαμεσολαβητών SOCKS5 για το βοηθητικό πρόγραμμα· πρέπει να επιτρέπει αυτόν τον προορισμό και τη θύρα SSH.

Το όριο των ορισμάτων έχει σημασία: το -o είναι ένα όρισμα και ολόκληρη η ανάθεση ProxyCommand είναι το επόμενο. Η παράμετρος more του Net::SFTP::Foreign δεν αντιμετωπίζει αυτόματα ως πίνακα ένα αυθαίρετο string που περιέχει πολλά ορίσματα SSH.

Μια εφαρμογή μπορεί επίσης να κρατήσει το ProxyCommand στη συνηθισμένη διαμόρφωση SSH Host και να περάσει αυτό το ψευδώνυμο κεντρικού υπολογιστή στο Net::SFTP::Foreign. Χρησιμοποιήστε τη διαμόρφωση του backend OpenSSH σε οποιαδήποτε από τις δύο μορφές· ένα διαφορετικό backend όπως το Plink έχει τη δική του σύνταξη επιλογών.

Σχετικά άρθρα