Дууссан CONNECT сокетыг ssh2-sftp-client-д шилжүүлэх
Прокси толгойн дараа буферт орсон SSH мэндчилгээг хадгалж, дараа нь sock-ыг очих газрын ердийн SSH тохиргоотой ашиглана.
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 бүртгэлээс тусдаа.