phpseclib 3 SFTP í gegnum uppsetta proxy-streymi
Notaðu opinbera streymissmið phpseclib 3 til að hefja SFTP í gegnum uppsetta HTTP- eða SOCKS-göng.
phpseclib 3 tekur við opinni streymisauðlind þar sem SSH/SFTP-smiður þess myndi annars fá hýsingarheiti. Það er opinbert afhendingarstig fyrir tengingu sem er þegar borin í gegnum proxy.
Fyrst setur tengið upp HTTP CONNECT- eða SOCKS-göng að raunverulega SFTP-þjóninum og portinu hans. Síðan er uppsett streymin send til 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 er þegar tengd streymi, ekki proxy-slóð. $expectedHostKey er traustur opinber lykilstrengur þjónsins, fenginn í gegnum undirbúningsferli forritsins, á því sniði sem phpseclib skilar. Innskráningarskírteinið getur verið studda lykilorðið eða hlaðið lykilhlutur sem forritið velur.
Skilgreindu hvað tengið skilar
Streymin verður þegar að leiða að SFTP-þjóninum. Fyrir HTTP CONNECT þýðir það að proxyið hefur samþykkt áfangastaðinn og að fullir svarshausar proxysins hafa verið notaðir. Fyrir SOCKS verður viðkomandi samningaviðræðum að vera lokið með góðum árangri. Allir SSH-bætir sem þegar eru lesnir handan þessara marka verða að vera SSH-útfærslunni aðgengilegir.
Á þeim tímapunkti framkvæmir phpseclib SSH-skiptin og hefur SFTP á sömu streymi. Forritið getur notað venjulegar SFTP-aðgerðir sínar. Sniðmátsviðmótið forðast undirflokk forritsins sem ætti að skipta út innri socket-reitum.