मैं phpseclib का उपयोग कर लार्वा 5.7 ढांचे पर चल रहे मेरे वेब ऐप के माध्यम से एक एसएफटीपी कनेक्शन का परीक्षण करने का प्रयास कर रहा हूं। यह प्रमाणीकरण कोड है, केवल पासवर्ड प्रमाणीकरण का उपयोग करते हुए। SFTP सर्वर अतिरिक्त सुरक्षा के रूप में IP श्वेतसूचीकरण का भी उपयोग कर रहा है।

                $sftp = new SFTP(env('SFTP_HOST'));
                if (!$sftp->login(env('SFTP_USER'), env('SFTP_PASSWORD'))) {
                    echo $sftp->getLog();
                }

0
user3364008 3 जिंदा 2020, 11:54

1 उत्तर

सबसे बढ़िया उत्तर

-vvv लॉग लगभग मुझे आश्चर्यचकित करते हैं कि क्या सर्वर बहु ​​कारक प्रमाणीकरण का उपयोग कर रहा है। जैसे आपको एक RSA key और एक पासवर्ड दोनों देना होता है। यदि ऐसा है तो आप इसे इस प्रकार प्राप्त करने में सक्षम होना चाहिए:

$key = new RSA;
$key->loadKey(file_get_contents('/home/forge/.ssh/id_rsa'));

$sftp = new SFTP(env('SFTP_HOST'));
if (!$sftp->login(env('SFTP_USER'), $key, env('SFTP_PASSWORD'))) {
    echo $sftp->getLog();
}

-vvv लॉग यह भी इंगित करते हैं कि यह सीधे कीबोर्ड-इंटरैक्टिव प्रमाणीकरण पर जा रहा है - कि यह पासवर्ड प्रमाणीकरण की कोशिश भी नहीं कर रहा है। आप जो कर रहे हैं उसके बजाय आप $sftp->login(env('SFTP_USER'), ['Password:' => env('SFTP_PASSWORD')]) करके phpseclib को कीबोर्ड-इंटरैक्टिव करने के लिए बाध्य कर सकते हैं।

हो सकता है कि इन दो युक्तियों में से कुछ संयोजन आपकी मदद करेंगे।

1
neubert 5 जिंदा 2020, 16:56