不支持/启用带有SFTP通过端口22命令行的cURL


1

我正在努力想出通过端口22连接到安全FTP服务器的正确命令。当我通过Filezilla连接时,它可以使用username / pwd和port。经过多次尝试,我最终得到了这个不会抛出端口或命令格式错误的命令:

如果我做 curl -u <myuername>:<pwd> "sftp://datafeeds.shareasale.com:22/54291/54291.txt" -o "c:/temp/54291.csv" 我收到错误 curl: (1) Protocol "sftp" not supported or disabled in libcurl。我从这里安装了最新的二进制文件: https://bintray.com/artifact/download/vszakats/generic/curl-7.60.0-win32-mingw.zip
但它仍然会抛出同样的错误,我如何添加支持/启用SFTP协议?

我已在这里查看过: https://curl.haxx.se/mail/archive-2007-02/0070.html https://curl.haxx.se/docs/manpage.html

Answers:


1

如何添加对SFTP协议的支持/启用?

它已经启用(至少有 curl.exe 您链接的二进制文件)。如果你跑 curl -V 在里面 bin 你提取的zip文件的目录,你会看到 sftp support是版本横幅中包含的构建选项之一。

VZ Curl Build ScreenShot

我收到一个错误 - curl: (1) Protocol "sftp" not supported or disabled in libcurl

事实上,很难确切地说出真正的问题可能是什么,但似乎有三种可能性之一:

  • 你实际上并没有使用的版本 curl 你以为你是。我会做 curl -V 从例如你的桌面,看看是否 sftp 支持仍然列在横幅中。我也会这样做 where curl 更好地了解哪个 curl.exe 文件在您的环境路径中注册。

  • 您可能有拼写错误(例如“sftp”,其中“sftp”之前存在无意的空间)或您正在访问的URL的其他问题。

  • 服务器或其配置存在问题。

关于一般故障排除,我会运行你的 curl 来自的命令 bin 解压缩文件的文件夹。这样,路径应该没有问题。

最后,作为一个小笔记, :22 可能没必要 - sftp 默认情况下在端口22上运行。在这种情况下指定端口的唯一原因是连接 将要在端口22上。也就是说,我会仔细检查服务器端口(例如,确保没有使用端口23或24)。


谢谢!这条路径的问题显然导致它使用旧版本。知道如何确保使用新版本的curl而不必从新目录执行吗?我没有看到路径环境变量中使用的旧版本。
Flo

为包含新版本的文件夹创建条目 curl 在你的用户路径/系统路径变量应该足以克服这一点,只要该条目在任何旧条目之前。所以基本上,创建任何新条目作为列表中的第一个条目。在Windows 7中,您只需将其编辑到变量的开头(不要忘记用分号分隔条目),在Windows 10中,您可以将新条目移动到给定环境变量列表的顶部(使用上移或下移)。我建议事后重新启动以确保Windows正确重新加载变量。
Anaksunaman

1
如果不能编辑变量,则还可以创建运行基本变量的批处理文件 curl 命令与新版本的完整路径 curl.exe 并在为特定事物(如地址链接和输出路径)运行批处理文件时使用命令行的输入。
Anaksunaman
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.