import SftpClient from 'ssh2-sftp-client';

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

Укажіть наявний хост, порт, обліковий запис і політику ключа хоста призначення в sshOptions. Сокет уже має вести через прийнятий тунель CONNECT до цього призначення, а не лише до слухача проксі.

Перевірте помічник перед передачею потоку: відхиліть 407 або інші невдалі відповіді, збережіть терміни налаштування та закрийте відхилені сокети. Подія connect HTTP у Node містить байти head, уже прочитані після заголовків; збережіть непорожній буфер із належною передачею потоку, наприклад socket.unshift(head). У ньому може бути привітання SSH.

Передайте сокет негайно, потім закрийте завершену роботу SFTP за допомогою await client.end(). HTTP Agent в іншому місці не створює цей транспорт SSH, а обліковий запис CONNECT відокремлений від облікового запису SSH.

Схожі статті