import SftpClient from 'ssh2-sftp-client';

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

میزبان، درگاه، حساب و سیاست کلید میزبان مقصد موجود را در sshOptions فراهم کنید. سوکت باید از قبل از طریق یک تونل CONNECT پذیرفته‌شده به همان مقصد برسد، نه فقط به شنونده پروکسی.

پیش از واگذاری جریان، کمک‌کننده را بررسی کنید: 407 یا دیگر پاسخ‌های ناموفق را رد کنید، مهلت‌های راه‌اندازی را نگه دارید و سوکت‌های ردشده را ببندید. رویداد connect در HTTP نود شامل بایت‌های head است که پس از سرآیندها خوانده شده‌اند؛ بافر غیرخالی را با واگذاری جریان مناسب حفظ کنید، برای نمونه socket.unshift(head). ممکن است سلام SSH در آن باشد.

سوکت را بی‌درنگ تحویل دهید، سپس کار کامل‌شده SFTP را با await client.end() ببندید. HTTP Agent در جای دیگر این انتقال SSH را نمی‌سازد و حساب CONNECT از حساب SSH جداست.

مقالات مرتبط