phpseclib 3 ખુલ્લા સ્ટ્રીમ સ્રોતને સ્વીકારે છે જ્યાં તેનું SSH/SFTP કન્સ્ટ્રક્ટર અન્યથા હોસ્ટનામ મેળવે. પ્રોક્સીમાંથી પસાર થતા જોડાણ માટે આ જાહેર સોંપણી બિંદુ છે.

પ્રથમ, કનેક્ટર વાસ્તવિક SFTP સર્વર અને પોર્ટ સુધી HTTP CONNECT અથવા SOCKS ટનલ સ્થાપે છે. પછી સ્થાપિત સ્ટ્રીમ 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 પહેલેથી જોડાયેલ સ્ટ્રીમ છે, પ્રોક્સી URL નથી. $expectedHostKey સર્વરની વિશ્વસનીય જાહેર-કી શબ્દમાળા છે, જે એપ્લિકેશનની પ્રોવિઝનિંગ પ્રક્રિયા દ્વારા મેળવાય છે, phpseclib જે ફોર્મેટમાં પરત આપે છે તેમાં. લોગિન ક્રેડેન્શિયલ એપ્લિકેશન દ્વારા પસંદ કરાયેલ સમર્થિત પાસવર્ડ અથવા લોડ કરેલ કી ઑબ્જેક્ટ હોઈ શકે છે.

કનેક્ટર શું પરત આપે છે તે વ્યાખ્યાયિત કરો

સ્ટ્રીમ પહેલેથી જ SFTP સર્વર તરફ દોરવો જોઈએ. HTTP CONNECT માટે તેનો અર્થ છે કે પ્રોક્સીએ ગંતવ્ય સ્વીકાર્યું છે અને સંપૂર્ણ પ્રોક્સી પ્રતિસાદ હેડરો વપરાઈ ગયા છે. SOCKS માટે સંબંધિત વાટાઘાટ સફળતાપૂર્વક પૂર્ણ થવી જોઈએ. તે સીમા પરથી પહેલેથી વાંચેલા કોઈપણ SSH બાઇટ્સ SSH અમલીકરણ માટે ઉપલબ્ધ રહેવા જોઈએ.

તે સમયે phpseclib SSH વિનિમય કરે છે અને તે જ સ્ટ્રીમ પર SFTP શરૂ કરે છે. એપ્લિકેશન તેની સામાન્ય SFTP કામગીરી વાપરી શકે છે. કન્સ્ટ્રક્ટર ઇન્ટરફેસ એવા એપ્લિકેશન સબક્લાસને ટાળે છે જેનું કામ આંતરિક સોકેટ ક્ષેત્રો બદલવાનું હોય.

સંબંધિત લેખો