ssh2 pranon një rrjedhë tashmë të lidhur përmes opsionit të tij sock. Lëreni socksv5 të vendosë rrugën drejt serverit SSH, më pas kaloni atë rrjedhë tek 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 është konfigurimi ekzistues SSH i aplikacionit, duke përfshirë llogarinë, çelësin dhe politikën hostVerifier. Host-i dhe porta SOCKS identifikojnë ndërmjetësin; sshConfig.host dhe port identifikojnë shërbimin përfundimtar SSH.

Shembulli përdor një pikë fundore SOCKS pa vërtetim. Për një server SSH të arritshëm nga interneti publik, lista e përfaqësuesve SOCKS5 mund të ofrojë kandidatë; secili ende duhet të lejojë destinacionin dhe portën SSH. Për metodën e emrit të përdoruesit/fjalëkalimit, përdorni socks.auth.UserPassword(proxyUser, proxyPassword) në auths. Këto kredenciale nuk zëvendësojnë llogarinë SSH.

localDNS false kalon emrin e hostit të destinacionit tek serveri SOCKS, duke përdorur zbërthimin e destinacionit në anën e përfaqësuesit. Pa këtë zgjedhje të qartë, parazgjedhja e dokumentuar e socksv5 provon zbërthimin lokal.

Kthimi i thirrjes SOCKS ekzekutohet pas negocimit. Prisni ngjarjen ready të ssh2 përpara se të kërkoni SFTP. Këto janë faza të suksesshme të ndara; as lidhja TCP me përfaqësuesin as përgjigja SOCKS nuk dëshmojnë se vërtetimi SSH ose nënsistemi SFTP ka pasur sukses.

Artikuj të ngjashëm