Παράδωσε το ολοκληρωμένο socket CONNECT στο ssh2-sftp-client
Διατήρησε τον χαιρετισμό SSH που έχει ήδη αποθηκευτεί μετά τις κεφαλίδες του διαμεσολαβητή και μετά χρησιμοποίησε το sock με τις συνήθεις επιλογές SSH του προορισμού.
import SftpClient from 'ssh2-sftp-client';
const client = new SftpClient();
await client.connect({
...sshOptions,
sock: tunnelSocket,
});Δώστε τον υπάρχοντα κεντρικό υπολογιστή, τη θύρα, τον λογαριασμό και την πολιτική κλειδιού κεντρικού υπολογιστή του προορισμού στο sshOptions. Το socket πρέπει να οδηγεί ήδη μέσα από μια αποδεκτή σήραγγα CONNECT προς αυτόν τον προορισμό, όχι μόνο προς τον ακροατή του διαμεσολαβητή.
Ελέγξτε τον βοηθό πριν παραδώσετε τη ροή: απορρίψτε το 407 ή άλλες αποτυχημένες απαντήσεις, διατηρήστε τις προθεσμίες ρύθμισης και κλείστε τα απορριφθέντα socket. Το συμβάν connect του HTTP στο Node περιλαμβάνει bytes head που έχουν ήδη διαβαστεί μετά τις κεφαλίδες· διατηρήστε ένα μη κενό buffer με τη σωστή παράδοση ροής, για παράδειγμα socket.unshift(head). Μπορεί να περιέχει τον χαιρετισμό SSH.
Παραδώστε το socket αμέσως και μετά κλείστε την ολοκληρωμένη εργασία SFTP με await client.end(). Ένα HTTP Agent αλλού δεν δημιουργεί αυτή τη μεταφορά SSH, και ο λογαριασμός CONNECT είναι ξεχωριστός από τον λογαριασμό SSH.