【问题标题】:Adding Support for SCP and SFTP for Curl on Linux在 Linux 上为 Curl 添加对 SCP 和 SFTP 的支持
【发布时间】:2014-08-22 16:51:11
【问题描述】:

我一直在拼命地尝试在我的 CentOS 机器上添加对 Curl 的 SFTP 和 SCP 支持。我在这里找到了类似解决方案的东西:

http://andrewberls.com/blog/post/adding-sftp-support-to-curl

我按照这些步骤操作,但发现在尝试通过 SCP 和 SFTP 获取文件时,一旦找到文件,连接就会挂起。我无法解决此问题,也找不到替代解决方案。

我必须在工作中使用 Curl,因此不能使用另一个库。有没有人成功地在 Curl 上添加了对 SCP 和 SFTP 的支持?我有一个测试服务器设置和其他协议(如 FTP)按预期工作。

任何帮助将不胜感激!

提前致谢, 彼得

【问题讨论】:

  • 现在你必须自定义 hack curl 来支持 scp,这对我来说似乎是一个巨大的痛苦。为什么不直接使用 libssh?
  • 我们有一个更大的 C++ 应用程序(在 Linux 上运行),它将从远程机器上 SFTP 文件并每天处理它。提供我们处理的文件的人不允许我们以任何其他方式检索它,我们的底层库使用 Curl。在 Curl 上启用 SFTP 是理想的,但是如果有更好的方法来解决这个问题,那么我愿意接受想法!
  • curl 在我的 Mageia 4 系统上开箱即用地与 SFTP/SCP 配合使用。命令行curl 工具是否适合您?如果是这样,那么您使用 libcurl 的方式有问题 - 可能与身份验证选项有关?
  • 嘿,thkala,命令行将连接到盒子,识别文件,然后在尝试下载时挂起。它可以获取根目录列表,但没有别的。 FTP 正常工作。

标签: linux curl sftp scp


【解决方案1】:

虽然 Curl 确实支持 SFTP,但支持不会自动包含在默认包中。

这个网站:http://andrewberls.com/blog/post/adding-sftp-support-to-curl 提供了帮助我添加对 SFTP 所需支持的详细信息。由于该网站并非 100% 适合我,因此我概述了以下采取的不同步骤。

手动下载 libssh2 对我不起作用,所以我使用 yum 安装了这两个包:

yum install libssh2 libssh2-devel

然后按照第二步配置 Curl 使用上述库进行安装

最后一步是重启sshd:

service sshd restart

你有它。通过运行仔细检查 SFTP 是否在支持协议列表中

curl -V

当我最初测试时,Curl 抱怨密钥身份验证问题,但您可以强制 Curl 使用任何身份验证进行连接:

curl --anyauth sftp://user:passwd@127.0.0.1/directory -o Test.txt

这将循环使用不同的受支持的身份验证方法,并让您使用您的登录凭据。

我希望这有助于减轻人们试图实现相同目标的任何其他头痛。

【讨论】:

    猜你喜欢
    • 2010-12-08
    • 2012-10-21
    • 2019-10-24
    • 1970-01-01
    • 2011-07-16
    • 2010-09-26
    • 2011-01-20
    • 2016-04-26
    • 2016-01-14
    相关资源
    最近更新 更多