import SftpClient from 'ssh2-sftp-client';

const client = new SftpClient();
await client.connect({
  ...sshOptions,
  sock: tunnelSocket,
});

Angiv den eksisterende destinations vært, port, konto og host-nøglepolitik i sshOptions. Socketten skal allerede føre gennem en accepteret CONNECT-tunnel til den destination, ikke blot til proxy-lytteren.

Kontroller hjælperen, før du overlader streamen: afvis 407 eller andre mislykkede svar, bevar opsætningsfrister og luk afviste sockets. Nodes HTTP-connect-hændelse indeholder head-bytes, der allerede er læst efter headere; bevar en ikke-tom buffer med den rette stream-overdragelse, for eksempel socket.unshift(head). Den kan indeholde SSH-hilsenen.

Videregiv socketten straks, og luk derefter den færdige SFTP-opgave med await client.end(). En HTTP Agent andre steder opretter ikke denne SSH-transport, og CONNECT-kontoen er adskilt fra SSH-kontoen.

Relaterede artikler