import SftpClient from 'ssh2-sftp-client';

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

Mavjud manzil xosti, porti, hisobi va host-kalit siyosatini sshOptions ichida bering. Soket allaqachon qabul qilingan CONNECT tunnel orqali shu manzilga borishi kerak, faqat proksi tinglovchisiga emas.

Oqimni topshirishdan oldin yordamchini tekshiring: 407 yoki boshqa muvaffaqiyatsiz javoblarni rad eting, sozlash muddatlarini saqlang va rad etilgan soketlarni yoping. Node-ning HTTP connect hodisasi sarlavhalardan keyin o'qilgan head baytlarini o'z ichiga oladi; bo'sh bo'lmagan buferni tegishli oqim topshirish bilan saqlang, masalan socket.unshift(head). Unda SSH salomi bo'lishi mumkin.

Soketni darhol topshiring, so'ng tugallangan SFTP ishini await client.end() bilan yoping. Boshqa joydagi HTTP Agent bu SSH transportini yaratmaydi va CONNECT hisobi SSH hisobidan alohida.

O'xshash maqolalar