Glacann phpseclib 3 le hacmhainn srutha oscailte áit a bhfaigheadh a chruthaitheoir SSH/SFTP óstainm ar shlí eile. Is é sin an pointe láimhseála poiblí do nasc atá á iompar trí sheachfhreastalaí cheana féin.

Ar dtús, bunaíonn an cónascaire tollán HTTP CONNECT nó SOCKS chuig an bhfíorsheachfhreastalaí SFTP agus a phort. Ansin cuirtear an sruth seanbhunaithe chuig 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 is sruth atá ceangailte cheana, ní URL seachfhreastalaí. Is é $expectedHostKey teaghrán eochair phoiblí iontaofa an tseachfhreastalaí, a fhaightear trí phróiseas soláthair an fheidhmchláir, san fhormáid a thugann phpseclib ar ais. Is féidir leis an teistín logála isteach an focal faire tacaíochta nó réad eochrach lódáilte a roghnaíonn an feidhmchlár a bheith ann.

Sainmhínigh cad a thugann an cónascaire ar ais

Caithfidh an sruth treorú chuig an seachfhreastalaí SFTP cheana. I gcás HTTP CONNECT, ciallaíonn sé seo gur ghlac an seachfhreastalaí leis an gceann scríbe agus go bhfuil ceanntásca freagartha iomlána an tseachfhreastalaí ídithe. I gcás SOCKS, caithfidh an chaibidlíocht ábhartha a bheith críochnaithe go rathúil. Ní mór aon bhearta SSH a léitear cheana thar an teorainn sin a choinneáil ar fáil don fheidhmchlár SSH.

Ag an bpointe sin déanann phpseclib an mhalartú SSH agus tosaíonn sé SFTP ar an sruth céanna. Is féidir leis an bhfeidhmchlár a ghnáthoibríochtaí SFTP a úsáid. Seachnaíonn comhéadan an chruthaitheora fo-aicme feidhmchláir a mbeadh sé de chúram uirthi réimsí inmheánacha soicéid a athsholáthar.

Ailt ghaolmhara