Fi CONNECT socket tí ó ti parí lé ssh2-sftp-client lọ́wọ́
Pa ìkíni SSH tí ó ti wà nínú búfà lẹ́yìn àwọn àkọlé proxy mọ́, lẹ́yìn náà lo sock pẹ̀lú àwọn àṣàyàn SSH déédéé ti ibi tí a ń lọ.
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.