I-SFTP ye-phpseclib 3 nge-stream ye-proxy esunguliwe
Sebenzisa i-constructor ye-stream yomphakathi ye-phpseclib 3 ukuqala i-SFTP nge-tunnel ye-HTTP noma ye-SOCKS esunguliwe.
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.