import SftpClient from 'ssh2-sftp-client';

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

Ibige ang umiiral na host, port, account at patakaran sa host-key ng destinasyon sa sshOptions. Ang socket ay dapat dumaan na sa tinatanggap na CONNECT tunnel patungo sa destinasyong iyon, hindi lamang sa tagapakinig ng proxy.

Suriin ang helper bago ibigay ang stream: tanggihan ang 407 o iba pang nabigong tugon, panatilihin ang mga deadline ng setup at isara ang mga tinanggihang socket. Kasama sa connect na kaganapan ng HTTP ng Node ang head byte na nabasa na pagkatapos ng mga header; panatilihin ang hindi walang laman na buffer gamit ang tamang paglilipat ng stream, halimbawa socket.unshift(head). Maaaring naglalaman ito ng pagbati ng SSH.

Iabot agad ang socket, pagkatapos ay isara ang natapos na gawain sa SFTP gamit ang await client.end(). Ang HTTP Agent sa ibang lugar ay hindi lumilikha ng SSH transport na ito, at ang CONNECT account ay hiwalay sa SSH account.

Kaugnay na mga artikulo