phpseclib 3 yana karɓar buɗaɗɗen hanyar stream inda na'urar gininsa ta SSH/SFTP za ta karɓi sunan mai masauki. Wannan shine wurin miƙa na jama'a don haɗin da ake ɗauka ta proxy.

Da farko, mai haɗawa yana kafa HTTP CONNECT ko SOCKS tunnel zuwa ainihin uwar garken SFTP da tasharta. Sannan a miƙa stream ɗin da aka kafa ga 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 stream ne da aka riga ya haɗu, ba URL na proxy ba. $expectedHostKey shine igiyar maɓallin jama'a amintaccen uwar garken, wanda aka samu ta hanyar tsarin samar da aikace-aikacen, cikin tsarin da phpseclib ke mayarwa. Takardar shiga na iya zama kalmar sirri da aka tallafa ko abin maɓalli da aka loda wanda aikace-aikacen ya zaɓa.

Ayyana abin da mai haɗawa ke mayarwa

Stream ɗin dole ne ya riga ya kai ga uwar garken SFTP. Don HTTP CONNECT, wannan yana nufin proxy ɗin ya karɓi inda ake zuwa kuma an cinye cikakkun kanun amsa na proxy. Don SOCKS, dole ne tattaunawar da ta dace ta kammala cikin nasara. Duk wani SSH byte da aka riga an karanta bayan wannan iyaka dole ne ya kasance ga aiwatar da SSH.

A wannan lokacin phpseclib yana yin musayar SSH kuma ya fara SFTP akan wannan stream ɗin. Aikace-aikacen na iya amfani da ayyukan SFTP na yau da kullum. Injin ɗin ginin yana guje wa rukunin aikace-aikacen da aikinsa zai kasance maye gurbin filayen socket na ciki.

Labarai masu alaƙa