我一直在拼命试图在我的CentOS盒子上添加SFTP和SCP支持Curl。我在这里找到了类似解决方案的东西:
http://andrewberls.com/blog/post/adding-sftp-support-to-curl
我按照这些步骤进行了操作,但发现在尝试通过SCP和SFTP获取文件时,一旦找到文件,连接就会挂起。我无法解决这个问题,也无法找到替代解决方案。
我必须在工作中使用Curl,因此不能使用其他lib。有没有人设法在Curl上成功添加对SCP和SFTP的支持?我有一个测试服务器设置和其他协议,如FTP按预期工作。
非常感谢任何帮助!
提前致谢, 彼得
答案 0 :(得分:5)
虽然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
这将循环使用不同的受支持的身份验证方法,并允许您使用登录凭据。
我希望这有助于减轻人们试图达到同样目标的任何其他麻烦。