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 ఖాతా నుండి వేరు.

సంబంధిత వ్యాసాలు