מסור את סוקט ה-CONNECT שהושלם ל-ssh2-sftp-client
שמור על ברכת ה-SSH שכבר נשמרה במאגר לאחר כותרות ה-proxy, ואז השתמש ב-sock עם אפשרויות ה-SSH הרגילות של היעד.
import SftpClient from 'ssh2-sftp-client';
const client = new SftpClient();
await client.connect({
...sshOptions,
sock: tunnelSocket,
});ספק את המארח, הפורט, החשבון ומדיניות מפתח המארח של היעד הקיים ב-sshOptions. הסוקט חייב כבר לעבור דרך מנהרת CONNECT שהתקבלה אל היעד הזה, ולא רק אל מאזין ה-proxy.
בדוק את העוזר לפני מסירת הזרם: דחה 407 או תגובות כושלות אחרות, שמור על מועדי ההגדרה וסגור סוקטים שנדחו. אירוע connect של HTTP ב-Node כולל בייטים של head שכבר נקראו לאחר הכותרות; שמור מאגר לא ריק עם מסירת הזרם המתאימה, למשל socket.unshift(head). ייתכן שהוא מכיל את ברכת ה-SSH.
מסור את הסוקט מיד, ואז סגור את עבודת ה-SFTP שהושלמה באמצעות await client.end(). HTTP Agent במקום אחר אינו יוצר את תעבורת ה-SSH הזו, וחשבון ה-CONNECT נפרד מחשבון ה-SSH.