Glacann ssh2 le sruth atá ceangailte cheana trína rogha sock. Lig do socksv5 an bealach chuig an bhfreastalaí SSH a bhunú, ansin tabhair an sruth sin do 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));

Is é sshConfig cumraíocht SSH reatha an fheidhmchláir, lena n-áirítear a chuntas, a eochair agus a pholasaí hostVerifier. Aithníonn óstach agus port SOCKS an t-idirghabhálaí; aithníonn sshConfig.host agus port an tseirbhís SSH deiridh.

Úsáideann an sampla críochphointe SOCKS gan fíordheimhniú. Maidir le freastalaí SSH is féidir a shroicheadh ón idirlíon poiblí, is féidir le liosta seachfhreastalaithe SOCKS5 iarrthóirí a sholáthar; caithfidh gach ceann acu an cinn scríbe agus an port SSH a cheadú fós. Maidir lena mhodh ainm úsáideora/focal faire, úsáid socks.auth.UserPassword(proxyUser, proxyPassword) in auths. Ní thagann na dintiúirí sin in áit an chuntais SSH.

Cuireann localDNS false ainm óstach an chinn scríbe chuig an bhfreastalaí SOCKS, ag úsáid réitigh cinn scríbe ar thaobh an tseachfhreastalaí. Gan an rogha shoiléir sin, déanann réamhshocrú doiciméadaithe socksv5 iarracht ar réiteach áitiúil.

Ritheann aisghlao SOCKS tar éis na hidirbheartaíochta. Fan le teagmhas ready ssh2 sula n-iarrfaí SFTP. Céimeanna rathúla ar leithligh iad seo; ní chruthaíonn nasc TCP chuig an seachfhreastalaí ná freagra SOCKS go n-éirigh le fíordheimhniú SSH ná leis an íoschóras SFTP.

Ailt ghaolmhara