I-phpseclib 3 yamukela insiza ye-stream evuliwe lapho i-constructor yayo ye-SSH/SFTP ibizothola khona igama le-host. Lena indawo yokudlulisela yomphakathi yoxhumano oluthwalwa nge-proxy.

Okokuqala, i-connector yakha i-tunnel ye-HTTP CONNECT noma ye-SOCKS eya kuseva ye-SFTP yangempela kanye ne-port yayo. Bese udlulisela i-stream esunguliwe ku-SFTP:

use phpseclib3\Net\SFTP;

$sftp = new SFTP($tunnel);

$actualHostKey = $sftp->getServerPublicHostKey();
if ($actualHostKey === false
    || !hash_equals($expectedHostKey, $actualHostKey)) {
    throw new RuntimeException('Unexpected SFTP server key');
}

if (!$sftp->login($sftpUser, $sftpCredential)) {
    throw new RuntimeException('SFTP login failed');
}

$tunnel iyi-stream esixhunyiwe kakade, hhayi i-proxy URL. I-$expectedHostKey iyintambo yokhiye womphakathi othembekile wesiva, etholakala ngenqubo yokulungiselela yohlelo, ngefomethi ebuyiselwa yi-phpseclib. Isiqinisekiso sokungena singaba iphasiwedi esekelwayo noma into yokhiye elayishiwe ekhethwa uhlelo.

Chaza ukuthi i-connector ibuyisela ini

I-stream kumele isivele ihole ku-seva ye-SFTP. Ku-HTTP CONNECT, lokhu kusho ukuthi i-proxy yamukele indawo ekuyiwa kuyo futhi izihloko zempendulo ephelele ze-proxy zisetshenzisiwe. Ku-SOCKS, izingxoxo ezifanele kumele zibe seziqedwe ngempumelelo. Noma yimaphi amabhayithi e-SSH asevele afundiwe ngale kwalomngcele kumele ahlale etholakala ekusetshenzisweni kwe-SSH.

Ngaleso sikhathi i-phpseclib yenza ukushintshana kwe-SSH futhi iqale i-SFTP ku-stream efanayo. Uhlelo lungasebenzisa imisebenzi yalo ejwayelekile ye-SFTP. I-interface ye-constructor igwema isigaba esingaphansi sohlelo umsebenzi waso okungukushintsha izinkambu ze-socket zangaphakathi.

Izihloko ezihlobene