완료된 CONNECT 소켓을 ssh2-sftp-client에 넘기기
프록시 헤더 뒤에 이미 버퍼된 SSH 인사말을 보존한 다음, 대상의 일반 SSH 옵션으로 sock을 사용하세요.
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 계정과 별개입니다.