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 මෙහෙයුම් භාවිත කළ හැක. නිර්මාණක අතුරුමුහුණත අභ්‍යන්තර සොකට් ක්ෂේත්‍ර ප්‍රතිස්ථාපනය කිරීමේ කාර්යය ඇති යෙදුම් උපපන්තියක් වළක්වයි.

අදාළ ලිපි