স্থাপিত প্ৰক্সী ষ্ট্ৰিমৰ জৰিয়তে phpseclib 3 SFTP
স্থাপিত HTTP বা SOCKS টানেলৰ জৰিয়তে SFTP আৰম্ভ কৰিবলৈ phpseclib 3 ৰ ৰাজহুৱা ষ্ট্ৰিম কনষ্ট্ৰাক্টৰ ব্যৱহাৰ কৰক।
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 কাৰ্য্যকাণ্ড ব্যৱহাৰ কৰিব পাৰে। কনষ্ট্ৰাক্টৰ ইন্টাৰফেছে এনে এপ্লিকেশ্যন উপশ্ৰেণী এৰাই যায় যাৰ কাম আছিল অভ্যন্তৰীণ ছকেট ক্ষেত্ৰ সলনি কৰা।