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 সফল হোৱা প্ৰমাণ নকৰে।

সম্পৰ্কিত প্ৰবন্ধ