SFTP phpseclib 3 trí shruth seachfhreastalaí seanbhunaithe
Úsáid cruthaitheoir srutha poiblí phpseclib 3 chun SFTP a thosú trí thollán HTTP nó SOCKS seanbhunaithe.
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.