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 सञ्चालनहरू प्रयोग गर्न सक्छ। कन्स्ट्रक्टर इन्टरफेसले आन्तरिक सकेट फिल्डहरू प्रतिस्थापन गर्ने काम भएको अनुप्रयोग उपवर्गलाई बेवास्ता गर्छ।

सम्बन्धित लेखहरू