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 செயல்பாடுகளைப் பயன்படுத்தலாம். கன்ஸ்ட்ரக்டர் இடைமுகம் உள் சாக்கெட் புலங்களை மாற்றுவதை பணியாகக் கொண்ட பயன்பாட்டு துணை வகுப்பைத் தவிர்க்கிறது.

தொடர்புடைய கட்டுரைகள்