import SftpClient from 'ssh2-sftp-client';

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

Anna olemassa olevan kohteen isäntä, portti, tili ja isäntäavaimen käytäntö sshOptions-asetuksessa. Socketin täytyy jo johtaa hyväksytyn CONNECT-tunnelin kautta tuohon kohteeseen, ei vain välityspalvelimen kuuntelijaan.

Tarkista apuri ennen virran luovuttamista: hylkää 407 tai muut epäonnistuneet vastaukset, säilytä asennuksen määräajat ja sulje hylätyt socketit. Noden HTTP connect -tapahtuma sisältää head tavua, jotka on jo luettu otsikoiden jälkeen; säilytä ei-tyhjä puskuri sopivalla virran luovutuksella, esimerkiksi socket.unshift(head). Se voi sisältää SSH-tervehdyksen.

Luovuta socket viipymättä ja sulje sitten valmis SFTP-työ komennolla await client.end(). Muualla oleva HTTP Agent ei luo tätä SSH-siirtoa, ja CONNECT-tili on erillinen SSH-tilistä.

Aiheeseen liittyvät artikkelit