Gev ssh2 sokkin, sum varð latdur upp gjøgnum SOCKS
Semja fyrst um SOCKS-sambandið, gev so málsokkinum til ssh2, áðrenn SFTP-undirskipanin verður latin upp.
ssh2 tekur ímóti einum longu samanbundnum streymi gjøgnum sock-valmøguleika sín. Lat socksv5 gera leiðina til SSH-tænaran, gev so tað streymið til 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 er verandi SSH-uppsetningin hjá nýtsluskipanini, eisini konta hennara, lykil og hostVerifier-politikk. SOCKS-verturin og -porturin vísa á millumliðin; sshConfig.host og port vísa á endaligu SSH-tænastuna.
Dømið brúkar eitt SOCKS-endapunkt uttan samsíðan. Fyri ein SSH-tænara, sum er atkomandi frá almenna internetinum, kann SOCKS5-proxy-listin bjóða valsøkum; hvør teirra má framvegis loyva SSH-málinum og -portinum. Fyri brúkaranavn/lykliorð-háttin hansara brúka socks.auth.UserPassword(proxyUser, proxyPassword) í auths. Hesir váttpróvar koma ikki í staðin fyri SSH-kontuna.
localDNS false sendir vertsnavnið á málinum til SOCKS-tænaran og brúkar málsupploysing á proxy-síðuni. Uttan henda greiða valið roynir dokumenteraði sjálvstýrið hjá socksv5 lokala upploysing.
SOCKS-afturkallið koyrir eftir semingina. Bíða eftir ready-hendingini hjá ssh2, áðrenn SFTP verður biðið um. Hesi eru serstakir eydnaðir fasar; hvørki TCP-samband til proxyið ella SOCKS-svar prógvar, at SSH-samváttan ella SFTP-undirskipanin eydnaðist.