import SftpClient from 'ssh2-sftp-client';

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

Учурдагы багыттоо хостун, портун, эсебин жана хост ачкыч саясатын sshOptions ичинде бериңиз. Сокет мурунтан эле кабыл алынган CONNECT туннели аркылуу ошол багытка өтүшү керек, прокси угуучусуна гана эмес.

Агымды өткөрүп берерден мурун жардамчыны текшериңиз: 407 же башка ийгиликсиз жоопторду четке кагыңыз, орнотуу мөөнөттөрүн сактаңыз жана четке кагылган сокеттерди жабыңыз. Node'дун HTTP connect окуясы аталыштардан кийин окулган head байттарын камтыйт; бош эмес буферди тиешелүү агым өткөрүү менен сактаңыз, мисалы socket.unshift(head). Анда SSH саламы болушу мүмкүн.

Сокетти дароо өткөрүңүз, анан бүткөн SFTP ишин await client.end() аркылуу жабыңыз. Башка жердеги HTTP Agent бул SSH ташуусун түзбөйт, ал эми CONNECT эсеби SSH эсебинен өзүнчө.

Тектеш макалалар