גיב ssh2 דעם סאקעט וואס איז געעפֿנט געווארן דורך SOCKS
פֿארהאנדלט קודם די SOCKS-פארבינדונג, דערנאך גיט איבער איר ציל-סאקעט צו ssh2 איידער איר עפֿנט די SFTP-אונטערסיסטעם.
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-אונטערסיסטעם האט מצליח געווען.