import SftpClient from 'ssh2-sftp-client';

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

Sediakan host, port, akun, dan kebijakan kunci host tujuan yang ada di sshOptions. Socket harus sudah mengarah melalui tunnel CONNECT yang diterima ke tujuan itu, bukan hanya ke pendengar proxy.

Periksa helper sebelum menyerahkan stream: tolak 407 atau respons gagal lainnya, pertahankan tenggat penyiapan, dan tutup socket yang ditolak. Peristiwa connect HTTP Node menyertakan byte head yang sudah dibaca setelah header; pertahankan buffer tidak kosong dengan penyerahan stream yang tepat, misalnya socket.unshift(head). Buffer itu dapat berisi sapaan SSH.

Serahkan socket segera, lalu tutup pekerjaan SFTP yang selesai dengan await client.end(). HTTP Agent di tempat lain tidak membuat transport SSH ini, dan akun CONNECT terpisah dari akun SSH.

Artikel terkait