import SftpClient from 'ssh2-sftp-client';

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

Nikeza i-host, i-port, i-akhawunti kanye nomgomo we-host-key wendawo ekhona kuzinketho ze-SSH eziku-sshOptions. I-socket kufanele ukuthi isivele idlule ku-CONNECT tunnel eyamukelwe iya kuleyo ndawo, hhayi kuphela kumlaleli we-proxy.

Hlola umsizi ngaphambi kokunikeza i-stream: nqaba i-407 noma ezinye izimpendulo ezehlulekile, gcina izikhathi zokuhlela futhi uvale ama-socket anqatshiwe. Umcimbi we-connect we-HTTP ku-Node uhlanganisa ama-byte e-head asevele afundiwe ngemva kwamakhanda; gcina i-buffer engenalutho ngokunikezwa kwe-stream okufanele, isibonelo socket.unshift(head). Kungase kube nokubingelela kwe-SSH.

Nikeza i-socket ngokushesha, bese uvale umsebenzi we-SFTP oqediwe nge-await client.end(). I-HTTP Agent kwenye indawo ayikwenzi lokhu kuthutha kwe-SSH, futhi i-akhawunti ye-CONNECT ihlukile ku-akhawunti ye-SSH.

Izihloko ezihlobene