Geef de voltooide CONNECT-socket door aan ssh2-sftp-client
Bewaar de SSH-groet die al na de proxy-headers is gebufferd en gebruik sock daarna met de gewone SSH-opties van de bestemming.
import SftpClient from 'ssh2-sftp-client';
const client = new SftpClient();
await client.connect({
...sshOptions,
sock: tunnelSocket,
});Geef de bestaande host, poort, account en host-sleutelbeleid van de bestemming op in sshOptions. De socket moet al via een geaccepteerde CONNECT-tunnel naar die bestemming leiden, niet alleen naar de proxy-listener.
Controleer de helper voordat je de stream overdraagt: weiger 407 of andere mislukte reacties, houd de installatietermijnen aan en sluit geweigerde sockets. De HTTP connect-gebeurtenis van Node bevat head bytes die al na de headers zijn gelezen; bewaar een niet-lege buffer met de juiste streamoverdracht, bijvoorbeeld socket.unshift(head). Er kan een SSH-groet in zitten.
Geef de socket meteen door en sluit daarna de voltooide SFTP-taak met await client.end(). Een HTTP Agent elders maakt dit SSH-transport niet aan, en het CONNECT-account staat los van het SSH-account.