Nika i-ssh2 isokhethi evulwe nge-SOCKS
Xoxa kuqala ngoxhumano lwe-SOCKS, bese unika i-ssh2 isokhethi yendawo ekuyiwa kuyo ngaphambi kokuvula uhlelo olungaphansi lwe-SFTP.
I-ssh2 yamukela umfudlana osuxhunyiwe kakade ngokukhetha kwayo i-sock. Vumela i-socksv5 ukuba yakhe indlela eya kuseva ye-SSH, bese unika leyo mfudlana ku-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));
I-sshConfig iwukuhlelwa kwe-SSH okukhona kohlelo, kufaka phakathi i-akhawunti, ukhiye kanye nenqubomgomo ye-hostVerifier. Umsingathi nebhodi ye-SOCKS kukhombisa umlamuli; i-sshConfig.host ne-port kukhombisa insiza yokugcina ye-SSH.
Isibonelo sisebenzisa indawo yokugcina ye-SOCKS ngaphandle kokuqinisekisa. Ngeseva ye-SSH efinyeleleka kusuka ku-inthanethi yomphakathi, uhlu lwama-proxy e-SOCKS5 lungahlinzeka ngabangeneleli; ngamunye usadinga ukuvumela indawo ye-SSH kanye nebhodi. Ngendlela yayo yegama lomsebenzisi/iphasiwedi, sebenzisa socks.auth.UserPassword(proxyUser, proxyPassword) ku-auths. Lezo ziqinisekiso azithathi indawo ye-akhawunti ye-SSH.
I-localDNS false idlulisela igama lomsingathi wendawo kuseva ye-SOCKS, isebenzisa ukuxazululwa kwendawo ohlangothini lwe-proxy. Ngaphandle kwalokho kukhetha okucacile, okuzenzakalelayo okubhaliwe kwe-socksv5 kuzama ukuxazulula kwasendaweni.
I-callback ye-SOCKS isebenza ngemva kwengxoxo. Linda umcimbi we-ready we-ssh2 ngaphambi kokucela i-SFTP. Lezi yizigaba eziphumelelayo ezihlukene; ukuxhumana kwe-TCP ku-proxy noma impendulo ye-SOCKS akufakazi ukuthi ukuqinisekisa kwe-SSH noma uhlelo olungaphansi lwe-SFTP kuphumelele.