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 କାର୍ଯ୍ୟ ସଞ୍ଚାଲନ ବ୍ୟବହାର କରିପାରିବ। କନଷ୍ଟ୍ରକ୍ଟର ଇଣ୍ଟରଫେସ ଆନ୍ତରିକ ସକେଟ ଫିଲ୍ଡ ବଦଳାଇବା କାର୍ଯ୍ୟ ଥିବା ଆପ୍ଲିକେସନ ଉପବର୍ଗକୁ ଏଡ଼ାଇଥାଏ।

ସମ୍ପର୍କିତ ପ୍ରବନ୍ଧ