import SftpClient from 'ssh2-sftp-client';

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

Forneça o host, a porta, a conta e a política de chave de host do destino existente em sshOptions. O socket já deve seguir por um túnel CONNECT aceito até esse destino, não apenas até o ouvinte do proxy.

Verifique o auxiliar antes de entregar o fluxo: rejeite 407 ou outras respostas com falha, mantenha os prazos de configuração e feche os sockets rejeitados. O evento connect HTTP do Node inclui bytes head já lidos após os cabeçalhos; preserve um buffer não vazio com a entrega de fluxo adequada, por exemplo socket.unshift(head). Ele pode conter a saudação SSH.

Passe o socket imediatamente e depois feche o trabalho SFTP concluído com await client.end(). Um HTTP Agent em outro lugar não cria este transporte SSH, e a conta CONNECT é separada da conta SSH.

Artigos relacionados