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

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

我一直在想办法通过端口 22 连接到安全 FTP 服务器的正确命令。当我通过 Filezilla 连接时,它可以使用用户名/密码和端口。经过几次尝试,我最终得到了这个命令,它不会抛出端口或命令格式错误:

如果我这样做,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.htmlhttps://curl.haxx.se/docs/manpage.html

答案1

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

它已启用(至少在curl.exe您链接到的二进制文件中已启用)。如果您在解压的 zip 文件的目录curl -V中运行bin,您将看到sftp支持是版本横幅中包含的构建选项之一。

VZ Curl Build 截图

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

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

  • 您实际上使用的并不是您认为的版本curl。我会curl -V从您的桌面执行此操作,看看sftp横幅中是否仍列出支持。我还会这样做where curl以更好地了解哪些curl.exe文件已在您的环境路径中注册。

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

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

关于常规故障排除,我会curlbin解压文件的文件夹中运行命令。这样,路径就不会出现问题。

最后,需要注意的是,这个:22可能是不必要的——sftp默认情况下在端口 22 上运行。在这种情况下指定端口的唯一原因是如果连接不是将在端口 22 上。也就是说,无论如何我都会仔细检查服务器端口(例如,确保它没有使用端口 23 或 24)。

相关内容