CURL में SFTP सपोर्ट कैसे सक्षम करें?


15

मैंने कर्ल-7.27.0 स्थापित किया है और यह ठीक काम कर रहा है। हालाँकि, जब मैं दौड़ता हूँ curl -V, मुझे मिलता है:

curl 7.21.6 (i686-pc-linux-gnu) libcurl/7.21.6 OpenSSL/1.0.0e zlib/1.2.3.4 libidn/1.22 librtmp/2.3
Protocols: dict file ftp ftps gopher http https imap imaps ldap pop3 pop3s rtmp rtsp smtp smtps telnet tftp
Features: GSS-Negotiate IDN IPv6 Largefile NTLM SSL libz

मैं SFTP प्रोटोकॉल कैसे सक्षम करूं?

जवाबों:


15

आपको curlपहले sftp सपोर्ट के साथ कंपाइल करना होगा।

कर्ल स्रोत को डाउनलोड और अनपैक करें। उसके बाद:

sudo apt-get install बिल्ड-एसेंशियल डीशेलपर libssh2-1-dev
sudo apt-get source libcurl3
sudo apt-get build-dep libcurl3

सीडी कर्ल- x.xx.x / डेबियन

नैनो नियम

"--without-libssh2" को "--with-libssh2" से ढूंढें और बदलें

सीडी ..

सुडो dpkg-buildpackage

सीडी ..

sudo dpkg -i curl_xxxxx.deb
sudo dpkg -i libcurl3_xxxx.deb
sudo dpkg -i libcurl3-gnutls_xxxx.deb

पर्याप्त संस्करणों के साथ कमांड को अपडेट करें, टोकोर्स। अधिक जानकारी यहाँ


मैं उस दौर से गुज़रा हूं, जब मैंने इसे गुज़ारा, कभी कैसे एक छोटी सी समस्या है जिसका मैं सामना कर रहा हूं। क्या आप इस लिंक में वहाँ mensioned है वहाँ है । <br/> ** 1) कर्ल स्रोत निकालने के बाद भी मैं कभी भी कर्ल-x.xx.x / डेबियन डायरेक्टरी या फाइल को कैसे नहीं खोज सका? <br/> 2) हो सकता है कि मुझे यह अंदाजा न हो कि सही स्रोत कौन सा है? इस कर्ल सोर्स
लूं

फिर भी मैं कम से कम इस मुद्दे को हल करने की कोशिश करने के लिए धन्यवाद देना चाहता हूं और आपसे अनुरोध करता हूं कि जिन 2 मुद्दों का मैंने यहां उल्लेख किया है, उनकी जांच करें। एक gr8 समय है।
हिश

यहाँ मैंने फ्रांटिक के उत्तर के आधार पर आज एक साथ क्या रखा है - gist.github.com/matschaffer/966b95d160d02d377700
Mat

6

आप नहीं मिलती है तो --without-libssh2साथ बदलने के लिए --with-libssh2आप के लिए खोज कर सकते हैं --without-sslऔर संलग्न --with-libssh2 , कर्ल के साथ परीक्षण संस्करण 7.35.0 पर उबंटू 14.04.2

फ्रैंटिक से अनुकूलित उत्तर:

कर्ल स्रोत को डाउनलोड और अनपैक करें। उसके बाद:

sudo apt-get install build-essential debhelper libssh2-1-dev
sudo apt-get source libcurl3
sudo apt-get build-dep libcurl3

cd curl-*/debian

nano rules

मेरे मामले में ढूँढें --without-sslऔर संलग्न करें --with-libssh2, यह इस तरह दिखता है:

इससे पहले

cd debian/build && dh_auto_configure ${CONFIGURE_ARGS}          \
        --with-ca-path=/etc/ssl/certs
cd debian/build-gnutls &&  dh_auto_configure ${CONFIGURE_ARGS}  \
        --with-ca-bundle=/etc/ssl/certs/ca-certificates.crt     \
        --without-ssl --with-gnutls
cd debian/build-nss && dh_auto_configure ${CONFIGURE_ARGS}      \
        --with-ca-bundle=/etc/ssl/certs/ca-certificates.crt     \
        --without-ssl --with-nss

उपरांत

cd debian/build && dh_auto_configure ${CONFIGURE_ARGS}          \
        --with-ca-path=/etc/ssl/certs --with-libssh2
cd debian/build-gnutls &&  dh_auto_configure ${CONFIGURE_ARGS}  \
        --with-ca-bundle=/etc/ssl/certs/ca-certificates.crt     \
        --without-ssl --with-gnutls --with-libssh2
cd debian/build-nss && dh_auto_configure ${CONFIGURE_ARGS}      \
        --with-ca-bundle=/etc/ssl/certs/ca-certificates.crt     \
        --without-ssl --with-nss --with-libssh2

अब पैकेज बनाएँ:

cd ..
sudo dpkg-buildpackage
cd ..

sudo dpkg -i curl_*.deb
sudo dpkg -i libcurl3_*.deb
sudo dpkg -i libcurl3-gnutls_*.deb

यहाँ आपके मुद्दे के लिए एक और अच्छा ट्यूटोरियल है

Frantique के उत्तर के बारे में अधिक जानकारी।


5

फ्रैंटिक के जवाब ने मेरे लिए काम किया - हालांकि जब मैंने अपने सिस्टम को अपग्रेड करने की कोशिश की, तो मेरे पैकेज मैनेजर ने इंस्टॉलेशन को एक कर्ल पर वापस करना चाहा, जिसमें sftp / scp न हो।

प्रत्येक अपग्रेड के बाद sftp / scp के साथ कर्ल को फिर से स्थापित करने से बचने के लिए:

sudo aptitude hold libcurl3
sudo aptitude hold libcurl3-gnutls

अगर आप apt का उपयोग करते हैं तो apt-mark का उपयोग करें।

यदि आप किसी विशिष्ट पैकेज के अपडेट को रोकने के बारे में अधिक जानकारी चाहते हैं तो इस पृष्ठ को पढ़ें

ध्यान दें कि अंततः भविष्य के कुछ अपग्रेड तब तक आगे नहीं बढ़ सकते जब तक आप पकड़ को हटा नहीं देते।

यदि संयोग से आप PHP का उपयोग कर रहे हैं और कर्ल में sftp की आवश्यकता है - तो आपको phpseclib की जांच करनी चाहिए जो स्थापित करने और बनाए रखने में बहुत आसान हो सकता है।


क्या 'कर्ल' भी आयोजित किया जाना चाहिए, या यह आवश्यक नहीं है?
डेविड ओलिवर

1

यहाँ कैसे Ubuntu 18.04 के लिए libssl समर्थन के साथ कर्ल बनाने के लिए है। LTS:

sudo apt-get install build-essential debhelper libssh-dev
sudo apt-get source curl
sudo apt-get build-dep curl

cd curl-*

पैच डाउनलोड करें और पैच करें debian/rules:

wget https://bugs.launchpad.net/ubuntu/+source/curl/+bug/311029/+attachment/5234644/+files/ubuntu_libssl.patch
sudo patch debian/rules < /ubuntu_libssl.patch
  • या वैकल्पिक फ़ाइल में प्रतिस्थापित करें debian/rules:

    CONFIGURE_ARGS += --without-libssh2` 
    

    साथ में

    CONFIGURE_ARGS += --with-libssh2
    

फिर पैकेज बनाएँ और स्थापित करें:

sudo dpkg-buildpackage -uc -us -b
# -us Do not sign the source package.
# -uc Do not sign the .changes file.
# -b Do not try to apply changes to the unpacked upstream

cd ..

sudo dpkg -i curl_*.deb
sudo dpkg -i libcurl3-*.deb
sudo dpkg -i libcurl3-gnutls_*.deb

sudo apt-mark hold curl
sudo apt-mark hold libcurl3
sudo apt-mark hold libcurl3-gnutls
# sudo apt-mark unhold <package-name>

आशा है कि किसी की मदद करता है।

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