Предайте готовия CONNECT сокет на ssh2-sftp-client
Запазете SSH поздрава, вече буфериран след прокси заглавките, после използвайте sock с обичайните SSH опции на дестинацията.
import SftpClient from 'ssh2-sftp-client';
const client = new SftpClient();
await client.connect({
...sshOptions,
sock: tunnelSocket,
});Подайте съществуващия хост, порт, акаунт и политика за хост ключ на дестинацията в sshOptions. Сокетът трябва вече да води през приет CONNECT тунел до тази дестинация, а не само до прокси слушателя.
Проверете помощника преди предаването на потока: отхвърлете 407 или други неуспешни отговори, запазете сроковете за настройка и затворете отхвърлените сокети. Събитието connect на HTTP в Node включва head байта, вече прочетени след заглавките; запазете непразен буфер с подходящото предаване на потока, например socket.unshift(head). Той може да съдържа SSH поздрава.
Предайте сокета бързо, после затворете завършената SFTP работа с await client.end(). HTTP Agent другаде не създава този SSH транспорт, а CONNECT акаунтът е отделен от SSH акаунта.