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.

Gerelateerde artikelen