Lftp प्रमाणपत्र सत्यापन त्रुटि से कैसे बचें?


46

मैं अपने पेलिकन ब्लॉग को काम करवाने की कोशिश कर रहा हूं । यह वास्तविक ब्लॉग को सर्वर पर स्थानांतरित करने के लिए lftp का उपयोग करता है, लेकिन मुझे हमेशा एक त्रुटि मिलती है:

mirror: Fatal error: Certificate verification: subjectAltName does not match ‘blogname.com’

मुझे लगता है कि lftp एसएसएल की जाँच कर रहा है और पेलिकन के त्वरित सेटअप में यह शामिल करना भूल गया कि मेरे पास मेरे एफटीपी पर एसएसएल नहीं है।


यह पेलिकन मेकफाइल में कोड है:

ftp_upload: $(OUTPUTDIR)/index.html
lftp ftp://$(FTP_USER)@$(FTP_HOST) -e "mirror -R $(OUTPUTDIR) $(FTP_TARGET_DIR) ; quit"

जो टर्मिनल में प्रस्तुत करता है:

    lftp ftp://username@blogname.com -e "mirror -R /Volumes/HD/Users/me/Test/output /myblog_directory ; quit"

मेकफाइल को बदलकर SSL जांच से इनकार करने पर मैंने अब तक जो कुछ भी प्रबंधित किया है, वह है:

lftp ftp://$(FTP_USER)@$(FTP_HOST) -e "set ftp:ssl-allow no" "mirror -R $(OUTPUTDIR) $(FTP_TARGET_DIR) ; quit"

मेरे गलत कार्यान्वयन के कारण मैं सही तरीके से लॉग इन करता हूं ( lftp username@myblog.com:~>), लेकिन एक पंक्ति की सुविधा अब काम नहीं करती है और मुझे हाथ से दर्पण कमांड दर्ज करना होगा:

mirror -R /Volumes/HD/Users/me/Test/output/ /myblog_directory

यह एक त्रुटि और समयबाह्य के बिना काम करता है। सवाल यह है कि एक लाइनर के साथ ऐसा कैसे किया जाए।


इसके अलावा मैंने कोशिश की:

  • set ssl:verify-certificate/ftp.myblog.com no
  • प्रमाणपत्र सत्यापन को lftp में अक्षम करने की यह तरकीब :

    $ बिल्ली ~ / .lftp / आर सी सेट एसएसएल: सत्यापित-प्रमाणपत्र सं

हालाँकि, ऐसा लगता है कि मेरी lftp डायरेक्टरी में कोई "rc" फोल्डर नहीं है - इसलिए इस प्रॉम्प्ट में काम करने का कोई मौका नहीं है।


1
~/.lftprc एक फ़ाइल है
Mausy5043

जवाबों:


42

से मैनपेज :

-c कमांड
दिए गए कमांड्स से बाहर निकलें और बाहर निकलें। कमांड को अर्धविराम ( ;), ( &&) या (या) ( ) के साथ अलग किया जा सकता है ||। शेल में कमांड तर्क को ठीक से उद्धृत करना याद रखें। इस विकल्प का उपयोग अन्य तर्कों के बिना अकेले किया जाना चाहिए।

इसलिए आप कमांड को एकल तर्क के रूप में निर्दिष्ट करना चाहते हैं, जिसे अर्धविराम द्वारा अलग किया गया है:

lftp ftp://$(FTP_USER)@$(FTP_HOST) -e "set ftp:ssl-allow no; mirror -R $(OUTPUTDIR) $(FTP_TARGET_DIR) ; quit"

आप वास्तव में quitआदेश को छोड़ सकते हैं और -cइसके बजाय उपयोग कर सकते हैं -e


एक दम बढ़िया। अनेक अनेक धन्यवाद। मुझे उम्मीद थी कि जो कोई मुझसे ज्यादा अनुभवी है, वह मेरी असफलता का तुरंत पता लगा लेगा (- मैंने आपके -सी सुझाव को छोड़ देने की कोशिश की, लेकिन यह मेरे लिए काम नहीं आया। मैं वैसे भी खुश हूं)।
पैट्रिक

34

मेरे पास एक समान मुद्दा था, हालांकि मेरे लॉफ्टप में एसएसएल सपोर्ट (फेडोरा आरपीएम) में संकलित है। ssl:verify-certificate falseमेरे लिए चाल चली।


11
इसके आधार पर, set ssl:verify-certificate falseमेरी ~/.lftprcसमस्या को हल करना मेरे लिए समस्या है।
निकोलस राउल

5
... हालांकि यह कि SSL का उपयोग करने की बात को हराने वाला आपका lftp अब खुशी से स्वीकार करता है कि जो भी प्रमाण पत्र प्रस्तुत किया गया है, वह आपको M2G हमलों के लिए असुरक्षित बनाता है।
स्पेक्टर्स

1
यदि प्रमाणपत्र ठीक से मान्य नहीं हैं, तो एक संभावित कारण यह है कि lftp को आपके सिस्टम का CA प्रमाणपत्र नहीं मिलता है। एक फिक्स के लिए इस उत्तर को देखें ।
ingomueller.net

19

echo "set ssl:verify-certificate no" >> ~/.lftp/rc

यदि आप प्रमाणपत्र की जाँच नहीं करना चाहते हैं तो समस्या का समाधान करेंगे


2
यह अभी भी एसएसएल प्रमाणपत्रों के सत्यापन को अक्षम करता है और यह मानव-मध्य हमलों को संभव बनाता है। बेहतर समाधान के लिए, यह उत्तर देखें ।
ingomueller.net

3
बेहतर सिर्फ set ssl:verify-certificate noहमेशा अक्षम करने की तुलना में वर्तमान सत्र के लिए अस्थायी अक्षम करने के लिए lftp शेल में निष्पादित करें । अभी भी समाधान के लिए +1।
akostadinov

8

ssl:verfy-certificate false मेरे लिए काम नहीं किया, मुझे "डेटा कनेक्शन बनाते समय" टाइमआउट त्रुटि मिल रही थी।

मैंने अपनी फ़ाइल में जोड़कर इन निर्देशों का पालन किया ।set ftp:ssl-allow false~/.lftprc


3
जब आप कमांड चलाते थे, तो क्या आपने इसे सही समझा था? ssl: सत्यापन-प्रमाणपत्र झूठा
मैल्कम मर्डोक

5

इसके अलावा मैंने कोशिश की:

  • सेट ssl: सत्यापन-प्रमाण पत्र / ftp.myblog.com सं
  • प्रमाणपत्र सत्यापन को lftp में अक्षम करने की यह तरकीब:

$ बिल्ली ~ / .lftp / आर सी सेट एसएसएल: सत्यापित-प्रमाणपत्र सं

प्रयोग करके देखें set ftp:ssl-allow no; यह मेरे लिए एक आकर्षण की तरह काम करता था।


1
यह सबसे उपयुक्त विकल्प है। वैश्विक सेटिंग एक बुरा विकल्प है क्योंकि जब संभव हो तो प्रमाणपत्र सत्यापन का उपयोग करना उचित है और वैश्विक विकल्प सेट करके यह कभी भी प्रमाण पत्र का सत्यापन करने का प्रयास नहीं करेगा। आप एक स्क्रिप्ट फ़ाइल का उपयोग कर सकते हैं lftp -f <script>और इस कमांड को ओपन कमांड से पहले रख सकते हैं ।
kmcguire

set ssl:verify-certificate noबेहतर है कि मुझे लगता है कि क्योंकि लेनदेन सुरक्षित है। set ftp:ssl-allow noसादे संवाद करेंगे
michalzuber

4

मुझे भी इसी तरह के ssl प्रमाणपत्र सत्यापन त्रुटि का सामना करना पड़ रहा था। 'नहीं' के लिए सत्यापन-प्रमाणपत्र सेट करना मेरे लिए काम किया।

उदाहरण:

lftp -c 'set ftps: initial-prot ""; सेट ftp: ssl-force true; सेट ftp: ssl-protect-data true; सेट ssl: सत्यापन-प्रमाणपत्र सं; open -u Usename, पासवर्ड 208.82.204.46; अपलोडफिल्में डालें;)


3

मैंने मैन पेज पढ़े हैं और समाधान पाया है। फ़ाइल बनाएँ

~/.lftp/rc

और वहां अगली पंक्ति जोड़ें:

set ssl:check-hostname false;

1

जरूरत है lftp कमांड: set ftp:ssl-allow no;

चयन करने के बाद आप कमांड निष्पादित कर सकते हैं:

lftp www.yourdomain.com -u username,password -e "set ftp:ssl-allow no;"

या कमांड में सेव करें ~/.lftprc


0
lftp -u username,password host -e "set ftp:ssl-allow no" 

मेरे लिए मुद्दा तय किया

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.