You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MINGW Windows环境下curl 7.59.0缺失SFTP库,求解决办法

解决MSYSGit中Curl不支持SFTP协议的问题

我来帮你搞定这个SFTP支持的问题——从你的curl -V输出能明确看到,当前的curl编译时确实没包含SFTP协议,这是因为SFTP功能依赖libssh2库,而默认的MSYSGit自带curl并没有链接这个库。下面给你两种可行的解决办法:

方法一:替换预编译的带SFTP支持的Curl二进制文件

这是最快捷的方式:

  • 找到适配你MINGW架构(x86_64-w64-mingw32,也就是64位)的预编译curl包,要确保它编译时包含了libssh2依赖(可以看发布说明里的特性列表)。
  • 备份当前MSYSGit目录下的curl.exe,它通常在Git\mingw64\bin路径里。
  • 把下载好的带SFTP支持的curl.exe替换进去,重新打开终端执行curl -V,检查Protocols列表里是否出现sftp。

方法二:手动编译Curl添加SFTP支持

如果找不到合适的预编译包,就自己动手编译:

  1. 先安装编译依赖:如果你的MSYSGit带有MSYS2子系统,打开MSYS2终端执行:
    pacman -S libssh2-devel openssl-devel zlib-devel
    
    把编译需要的库都装好。
  2. 下载对应版本的curl源码(比如你当前用的7.59.0,或者更新的稳定版),解压后进入源码目录。
  3. 执行配置命令,确保开启libssh2支持:
    ./configure --with-libssh2 --with-ssl --with-zlib
    
    注意看配置输出,要确认“libssh2 found”的提示,说明依赖检测通过了。
  4. 接着编译并安装:
    make && make install
    
    编译完成后,把生成的curl.exe替换掉原来MSYSGit里的版本就行。

验证解决效果

替换或编译完成后,再执行一次:

curl -V

如果Protocols列表里出现了sftp,就说明配置成功了,此时再尝试访问SFTP地址应该就不会出现Protocol 'sftp' not supported的错误了。

内容的提问来源于stack exchange,提问作者Manic Depression

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 09:51:41