我一直在想办法通过端口 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.html,https://curl.haxx.se/docs/manpage.html
答案1
如何添加/启用 SFTP 协议支持?
它已启用(至少在curl.exe
您链接到的二进制文件中已启用)。如果您在解压的 zip 文件的目录curl -V
中运行bin
,您将看到sftp
支持是版本横幅中包含的构建选项之一。
我收到一个错误 -
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)。