SOCKS ৰ জৰিয়তে খোলা ছকেট ssh2 ক দিয়ক
প্ৰথমে SOCKS সংযোগৰ আলোচনা কৰক, তাৰ পিছত SFTP subsystem খোলাৰ আগতে ইয়াৰ গন্তব্য ছকেট ssh2 ক দিয়ক।
ssh2 য়ে ইতিমধ্যে সংযুক্ত stream এটা sock option ৰ জৰিয়তে গ্ৰহণ কৰে। socksv5 ক SSH server লৈ পথ স্থাপন কৰিবলৈ দিয়ক, তাৰ পিছত সেই stream টো SSH ক দিয়ক:
const socks = require('socksv5');
const { Client } = require('ssh2');
const connection = socks.connect({
host: sshConfig.host,
port: sshConfig.port || 22,
proxyHost: 'proxy.example',
proxyPort: 1080,
localDNS: false,
auths: [socks.auth.None()],
}, socket => {
const ssh = new Client();
ssh.on('error', error => console.error(error.message));
ssh.on('ready', () => {
ssh.sftp((error, sftp) => {
if (error) {
console.error(error.message);
ssh.end();
return;
}
sftp.readdir('.', (error, entries) => {
if (error) console.error(error.message);
else console.log(entries);
ssh.end();
});
});
});
ssh.connect({ ...sshConfig, sock: socket });
});
connection.on('error', error => console.error(error.message));
sshConfig হৈছে এপ্লিকেচনৰ বৰ্তমানৰ SSH configuration, যাৰ ভিতৰত account, key আৰু hostVerifier policy আছে। SOCKS host আৰু port এ intermediary ক সূচায়; sshConfig.host আৰু port এ চূড়ান্ত SSH service ক সূচায়।
উদাহৰণটোৱে authentication নথকা SOCKS endpoint এ ব্যৱহাৰ কৰে। ৰাজহুৱা ইণ্টাৰনেটৰ পৰা পাব পৰা SSH server ৰ বাবে SOCKS5 proxy list এ প্ৰাৰ্থী যোগান ধৰিব পাৰে; প্ৰতিটোৱে SSH গন্তব্য আৰু port অনুমোদন কৰিব লাগিব। ইয়াৰ username/password পদ্ধতিৰ বাবে auths ত socks.auth.UserPassword(proxyUser, proxyPassword) ব্যৱহাৰ কৰক। সেই credentials এ SSH account ক প্ৰতিস্থাপন নকৰে।
localDNS false এ গন্তব্য hostname টো SOCKS server লৈ পঠিয়ায়, proxy-ফালৰ গন্তব্য resolution ব্যৱহাৰ কৰি। এই স্পষ্ট বাছনি অবিহনে socksv5 ৰ documented default এ local resolution চেষ্টা কৰে।
SOCKS callback টো আলোচনাৰ পিছত চলি থাকে। SFTP অনুৰোধ কৰাৰ আগতে ssh2 ৰ ready event লৈ অপেক্ষা কৰক। এইবোৰ পৃথক সফল স্তৰ; proxy লৈ TCP connection বা SOCKS উত্তৰে SSH authentication বা SFTP subsystem সফল হোৱা প্ৰমাণ নকৰে।