phpseclib 3 SFTP орнатылған прокси ағыны арқылы
SFTP-ны орнатылған HTTP немесе SOCKS туннелі арқылы бастау үшін 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 операцияларын пайдалана алады. Конструктор интерфейсі ішкі сокет өрістерін ауыстыру міндеті бар қолданба ішкі класын болдырмайды.