Perduokite užbaigtą CONNECT socket ssh2-sftp-client
Išsaugokite SSH pasveikinimą, jau įrašytą į buferį po tarpinio serverio antraščių, tada naudokite sock su įprastomis paskirties SSH parinktimis.
import SftpClient from 'ssh2-sftp-client';
const client = new SftpClient();
await client.connect({
...sshOptions,
sock: tunnelSocket,
});Nurodykite esamo paskirties hosto, prievado, paskyros ir hosto rakto politiką sshOptions. Socket jau turi vesti per priimtą CONNECT tunelį į tą paskirtį, o ne tik į tarpinio serverio klausytoją.
Prieš perduodami srautą patikrinkite pagalbininką: atmeskite 407 ar kitus nepavykusius atsakymus, išlaikykite nustatymo terminus ir uždarykite atmestus socket. Node HTTP connect įvykis apima head baitus, jau perskaitytus po antraščių; išsaugokite ne tuščią buferį tinkamu srauto perdavimu, pavyzdžiui, socket.unshift(head). Jame gali būti SSH pasveikinimas.
Perduokite socket nedelsdami, tada uždarykite baigtą SFTP darbą su await client.end(). HTTP Agent kitur nesukuria šio SSH transporto, o CONNECT paskyra atskira nuo SSH paskyros.