O argumento em @filename
style para -H
foi adicionado em 7.55.0 ( man curl
).
-H
/--header <header/@file>
Starting in 7.55.0, this option can take an argument in
@filename
style, which then adds a header for each line in the input file. Using@-
will make curl read the header file from stdin.
O problema com ssh
aconteceu porque a versão curl
mais antiga foi usada.
Então basicamente duas versões diferentes de curl
estavam envolvidas.
$ which curl && curl --version
/usr/local/bin/curl
curl 7.59.0 (x86_64-apple-darwin17.3.0) libcurl/7.59.0 OpenSSL/1.0.2o zlib/1.2.11 libidn2/2.0.4
$ ssh user@localhost 'which curl && curl --version'
/usr/bin/curl
curl 7.54.0 (x86_64-apple-darwin17.0) libcurl/7.54.0 LibreSSL/2.0.20 zlib/1.2.11 nghttp2/1.24.0
Então, codificando o caminho para o novo /usr/local/bin/curl
(v7.59 / OpenSSL), parece funcionar bem:
$ ssh user@localhost /usr/local/bin/curl -H @- -vso/dev/null http://www.example.com <<<"Foo:Bar"