ssh2 נעמט אן אן שוין פארבונדן שטראם דורך זיין sock-אפציע. לאזט socksv5 אויסשטעלן דעם וועג צום SSH-סערווער, דערנאך גיט איבער דעם שטראם צו 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-קאנפֿיגוראציע פֿון דער אפליקאציע, איינשליסנדיק דעם חשבון, שליסל און hostVerifier-פאליטיק. דער SOCKS-האסט און פארט באצייכענען דעם מיטלמאן; sshConfig.host און port באצייכענען דעם לעצטן SSH-דינסט.

דאס ביישפיל נוצט אן SOCKS-ענדפונקט אן אויטענטיפֿיקאציע. פֿאר אן SSH-סערווער צוגענגלעך פֿונעם פֿאמיליערן אינטערנעט קען די SOCKS5-פראקסי-ליסטע צושטעלן קאנדידאטן; יעדער דארף נאך ערלויבן דעם SSH-ציל און פארט. פֿאר איר באנוצער-נאמען/פאסווארט מעטאד נוצט socks.auth.UserPassword(proxyUser, proxyPassword) אין auths. די דאזיקע בארעכטיגונגען ערזעצן נישט דעם SSH-חשבון.

localDNS false גיט איבער דעם ציל-האסטנאמען צום SOCKS-סערווער, נוצנדיק ציל-אויפֿלעזונג אויף דער פראקסי-זייט. אן דעם קלארן אויסוואל פרובירט דער דאקומענטירטער סטאנדארט פֿון socksv5 א לאקאלע אויפֿלעזונג.

דער SOCKS-צוריקרוף לויפֿט נאך דער פארהאנדלונג. ווארט אויפֿן ready-געשעעניש פֿון ssh2 איידער איר פארלאנגט SFTP. דאס זענען באזונדערע דערפֿאלגרייכע שטאפֿלען; סיי א TCP-פארבינדונג צום פראקסי סיי א SOCKS-ענטפֿער באווייזן נישט אז SSH-אויטענטיפֿיקאציע אדער די SFTP-אונטערסיסטעם האט מצליח געווען.

פֿאַרבונדענע אַרטיקלען