import SftpClient from 'ssh2-sftp-client';

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

Zadejte stávající hostitele, port, účet a zásady hostitelského klíče cíle do sshOptions. Socket už musí vést přes přijatý tunel CONNECT k tomuto cíli, ne jen k naslouchajícímu proxy.

Před předáním streamu zkontrolujte pomocníka: odmítněte 407 nebo jiné neúspěšné odpovědi, zachovejte lhůty nastavení a zavřete odmítnuté sockety. Událost connect v Node HTTP obsahuje bajty head již přečtené po hlavičkách; zachovejte neprázdný buffer vhodným předáním streamu, například socket.unshift(head). Může obsahovat SSH pozdrav.

Socket předejte bez odkladu a poté dokončenou práci SFTP uzavřete pomocí await client.end(). HTTP Agent jinde tento SSH transport nevytváří a účet CONNECT je oddělený od účtu SSH.

Související články