cURLでSFTPサポートを有効にする方法


15

curl-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サポートを使用してコンパイルする必要があります。

curlソースをダウンロードして解凍します。その後:

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

cd curl-x.xx.x / debian

ナノルール

「--without-libssh2」を見つけて「--with-libssh2」に置き換えます

cd ..

sudo dpkg-buildpackage

cd ..

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

もちろん、適切なバージョンでコマンドを更新してください。詳細はこちら


私はそれをグーグルで検索したときに、その中に直面している小さな問題がどれほどあるかを経験しました。あなたがそこで大騒ぎしたものはこのリンクにあります。<br/> ** 1)curlソースを抽出した後でもcurl-x.xx.x / debianディレクトリまたはファイルがどこにも見つからなかったことがありますか?<br/> 2)正しい情報源であるアイデアがわからない可能性がありますか?ダウンロードしたソースがこのCurl
-Hrish

それでも、少なくとも問題を解決しようとしていることに感謝し、ここで言及した2つの問題を確認してください。gr8時間を持っています。
12

以下は、Frantiqueの回答に基づいて今日まとめたものです-gist.github.com/matschaffer/966b95d160d02d377700
Mat Schaffer

6

あなたは見つけることができない場合--without-libssh2に交換する--with-libssh2ために検索することができます--without-sslし、アペンド --with-libssh2バージョン、カールでテスト7.35.0をのUbuntu 14.04.2

Frantiqueからのカスタマイズされた回答:

curlソースをダウンロードして解凍します。その後:

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

Frantiqueの答えはうまくいきましたが、システムをアップグレードしようとしたときに、パッケージマネージャーがインストールをsftp / scpのないcurlに戻したいと思っていました。

アップグレードのたびにsftp / scpを使用してcurlを再インストールする必要を回避するには:

sudo aptitude hold libcurl3
sudo aptitude hold libcurl3-gnutls

aptを使用する場合は、apt-markを使用します。

特定のパッケージの更新を防止するための詳細情報が必要な場合は、このページをお読みください

最終的には、保留を解除するまで、将来のアップグレードが続行できない場合があることに注意してください。

偶然PHPを使用しており、curlでsftpが必要な場合は、インストールと保守がはるかに簡単なphpseclibを確認する必要があります。


「カール」も開催する必要がありますか、またはこれは必要ありませんか?
デビッドオリバー

1

Ubuntu 18.04のlibsslサポートでcurlをビルドする方法は次のとおりです。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>

それが誰かを助けることを願っています。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.