import SftpClient from 'ssh2-sftp-client';

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

Pèsè host, port, àkọsílẹ̀ àti ìlànà host-key ti ibi tí a ń lọ nínú sshOptions. Socket gbọ́dọ̀ ti gba CONNECT tunnel tí a gbà kọjá lọ sí ibi yẹn, kì í ṣe sí olùgbọ́ proxy nìkan.

Ṣàyẹ̀wò olùrànlọ́wọ́ ṣáájú kí o tó fi ipa-ọ̀nà náà lélẹ̀: kọ 407 tàbí àwọn ìdáhùn tí ó kùnà mìíràn, pa àwọn àkókò ìṣètò mọ́ kí o sì ti àwọn socket tí a kọ̀ mọ́. Ìṣẹ̀lẹ̀ connect HTTP ti Node ní àwọn byte head tí a ti kà lẹ́yìn àwọn àkọlé; pa búfà tí kò ṣófo mọ́ pẹ̀lú ìfijísọ ipa-ọ̀nà tó yẹ, fún àpẹẹrẹ socket.unshift(head). Ó lè ní ìkíni SSH nínú.

Fi socket lélẹ̀ kíákíá, lẹ́yìn náà ti iṣẹ́ SFTP tí ó ti parí mọ́ pẹ̀lú await client.end(). HTTP Agent níbòmíràn kò dá SSH transport yìí, àti àkọsílẹ̀ CONNECT yàtọ̀ sí àkọsílẹ̀ SSH.

Àwọn àpilẹ̀kọ tó jọra