Předejte dokončený socket CONNECT do ssh2-sftp-client
Zachovejte SSH pozdrav už uložený v bufferu po hlavičkách proxy a poté použijte sock s obvyklými SSH možnostmi cíle.
import SftpClient from 'ssh2-sftp-client';
const client = new SftpClient();
await client.connect({
...sshOptions,
sock: tunnelSocket,
});Zadejte stávající hostitele, port, účet a zásady hostitelského klíče cíle do sshOptions. Socket už musí vést přes přijatý tunel CONNECT k tomuto cíli, ne jen k naslouchajícímu proxy.
Před předáním streamu zkontrolujte pomocníka: odmítněte 407 nebo jiné neúspěšné odpovědi, zachovejte lhůty nastavení a zavřete odmítnuté sockety. Událost connect v Node HTTP obsahuje bajty head již přečtené po hlavičkách; zachovejte neprázdný buffer vhodným předáním streamu, například socket.unshift(head). Může obsahovat SSH pozdrav.
Socket předejte bez odkladu a poté dokončenou práci SFTP uzavřete pomocí await client.end(). HTTP Agent jinde tento SSH transport nevytváří a účet CONNECT je oddělený od účtu SSH.