在 OSX 上对 curl 的 SFTP 支持
Posted
技术标签:
【中文标题】在 OSX 上对 curl 的 SFTP 支持【英文标题】:SFTP Support for curl on OSX 【发布时间】:2012-10-21 17:08:33 【问题描述】:我正在尝试在 OSX 中获得对 curl 的 SFTP 支持。我通过
安装了 curl$ brew install curl --with-ssh
我还将自制版本通过符号链接到 /usr/bin
$ sudo ln -s /usr/local/bin/curl /usr/bin/curl
但我仍然得到一个
curl: (1) Protocol sftp not supported or disabled in libcurl
使用时
$ curl sftp://some.host.com/path/to/file
我的努力与真棒 git-ftp https://github.com/resmo/git-ftp/issues/146 的问题有关
我做错了什么?
【问题讨论】:
简短说明:现在看来您需要: brew install curl --with-libssh2 @DerWOK 你是这里真正的 MVP,这比答案更好。 截至 2018 年 8 月 brew install curl --with-ssh 自动将其翻译为 --with-libssh2。 【参考方案1】:运行“curl -V”并查看 SFTP 是否被列为支持的协议。
如果不是,则需要使用 libssh2 重新构建 curl 以获得内置支持。
【讨论】:
您好,谢谢。虽然我用 ssh 安装了 curl,但确实没有列出 sftp。原来自制软件安装 curl 到/usr/local/Cellar/curl/7.28.0/bin/curl
所以重做符号链接为我做了:ln -s /usr/local/Cellar/curl/7.28.0/bin/curl /usr/bin/curl
因为同样的错误而来到这里,也使用了 git-ftp。小世界... 仅供参考,Homebrew 在构建 curl 后说:这个公式仅适用于小桶,因此它没有符号链接到 /usr/local。 Mac OS X 已经提供了这个软件,如果并行安装另一个版本会带来各种各样的麻烦。【参考方案2】:
如果您使用的是 Mac,则必须先运行它才能启用:
brew install curl --with-libssh2
【讨论】:
如果您因为 brew 团队不再支持此标志而陷入困境,请考虑使用其他库。例如,php 有 packagist.org/packages/phpseclib/phpseclib 可用,它不需要通过 cURL 来使用 sftp 协议。 这个答案不再有效。Error: invalid option: --with-libssh2
【参考方案3】:
因为--with-libssh2
选项是removed from brew,所以要这样做:
brew install curl-openssl
注意:
curl is keg-only, which means it was not symlinked into /usr/local,
because macOS already provides this software and installing another version in
parallel can cause all kinds of trouble.
If you need to have curl first in your PATH, run:
echo 'export PATH="/usr/local/opt/curl/bin:$PATH"' >> ~/.zshrc
或者直接调用:
/usr/local/opt/curl/bin/curl ...
【讨论】:
以上是关于在 OSX 上对 curl 的 SFTP 支持的主要内容,如果未能解决你的问题,请参考以下文章