Lämna över den färdiga CONNECT-socketen till ssh2-sftp-client
Behåll SSH-hälsningen som redan är buffrad efter proxy-headrarna och använd sedan sock med destinationens vanliga SSH-alternativ.
import SftpClient from 'ssh2-sftp-client';
const client = new SftpClient();
await client.connect({
...sshOptions,
sock: tunnelSocket,
});Ange den befintliga destinationens värd, port, konto och värdnyckelpolicy i sshOptions. Socketen måste redan gå genom en accepterad CONNECT-tunnel till den destinationen, inte bara till proxy-lyssnaren.
Kontrollera hjälparen innan du lämnar över strömmen: avvisa 407 eller andra misslyckade svar, behåll tidsfristerna för konfigurationen och stäng avvisade sockets. Nodes HTTP-connect-händelse innehåller head byte som redan lästs efter headrarna; behåll en icke-tom buffert med rätt strömöverlämning, till exempel socket.unshift(head). Den kan innehålla SSH-hälsningen.
Lämna över socketen direkt och stäng sedan det slutförda SFTP-arbetet med await client.end(). En HTTP Agent någon annanstans skapar inte denna SSH-transport, och CONNECT-kontot är skilt från SSH-kontot.