import SftpClient from 'ssh2-sftp-client';

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

Gib Host, Port, Konto und Host-Key-Richtlinie des bestehenden Ziels in sshOptions an. Der Socket muss bereits über einen angenommenen CONNECT-Tunnel zu diesem Ziel führen, nicht nur zum Proxy-Listener.

Prüfe den Helfer, bevor du den Stream übergibst: Weise 407 oder andere fehlgeschlagene Antworten zurück, behalte Setup-Fristen bei und schließe abgelehnte Sockets. Das HTTP-connect-Ereignis von Node enthält bereits nach den Headern gelesene head-Bytes; bewahre einen nicht leeren Puffer mit der passenden Stream-Übergabe auf, etwa socket.unshift(head). Er kann die SSH-Begrüßung enthalten.

Übergib den Socket umgehend und schließe dann die erledigte SFTP-Aufgabe mit await client.end() ab. Ein HTTP Agent an anderer Stelle erzeugt diesen SSH-Transport nicht, und das CONNECT-Konto ist vom SSH-Konto getrennt.

Ähnliche Artikel