28

我似乎无法解决这个问题。我正在尝试编写脚本自动上传 csv,但 curl 因 401 而失败。

curl -v --ntlm -u username --upload-file ~/galaxy/forums/pt_update.csv https://connect.example.com/11063/csv_import?op=add -k
Enter host password for user 'username:
* About to connect() to connect.example.com port 443 (#0)
*   Trying x.x.x.x... connected
* successfully set certificate verify locations:
*   CAfile: none
  CApath: /etc/ssl/certs
* SSLv3, TLS handshake, Client hello (1):
* SSLv3, TLS handshake, Server hello (2):
* SSLv3, TLS handshake, CERT (11):
* SSLv3, TLS handshake, Server finished (14):
* SSLv3, TLS handshake, Client key exchange (16):
* SSLv3, TLS change cipher, Client hello (1):
* SSLv3, TLS handshake, Finished (20):
* SSLv3, TLS change cipher, Client hello (1):
* SSLv3, TLS handshake, Finished (20):
* SSL connection using RC4-MD5
* Server certificate:
*    subject: C=US; ST=Washington; L=internetland; O=example.com Inc.; CN=connect.example.com
*    start date: 2012-06-11 14:53:47 GMT
*    expire date: 2013-06-11 14:53:47 GMT
*    common name: connect.example.com (matched)
*    issuer: DC=com; DC=example; DC=ant; CN=example.com Infosec CA G2
*    SSL certificate verify result: unable to get local issuer certificate (20), continuing anyway.
* Server auth using NTLM with user 'username'
> PUT /11063/csv_import?op=add HTTP/1.1
> Authorization: NTLM TlRMTVNTUAABAAAABoIIAAAAAAAAAAAAAAAAAAAAAAA=
> User-Agent: curl/7.22.0 (x86_64-pc-linux-gnu) libcurl/7.22.0 OpenSSL/1.0.1 zlib/1.2.3.4 libidn/1.23 librtmp/2.3
> Host: connect.example.com
> Accept: */*
> Content-Length: 0
> Expect: 100-continue
> 
< HTTP/1.1 401 Authorization Required
< Date: Fri, 29 Mar 2013 03:47:00 GMT
< Server: Server
< WWW-Authenticate: Basic realm="ANT (Windows) Login"
< Content-Length: 401
< Connection: close
< Content-Type: text/html; charset=iso-8859-1
< 
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>401 Authorization Required</title>
</head><body>
<h1>Authorization Required</h1>
<p>This server could not verify that you
are authorized to access the document
requested.  Either you supplied the wrong
credentials (e.g., bad password), or your
browser doesn't understand how to supply
the credentials required.</p>
</body></html>
* Closing connection #0
* SSLv3, TLS alert, Client hello (1):

我替换了我的实际域所在的示例,并且我肯定会为我的域使用正确的用户名/密码。

4

2 回答 2

46

你试试这个

如果您有一个托管在 IIS 中的页面并且可以与 NTLM 一起使用,那么您应该输入:

(例如在 Sharepoint 页面)

curl http://enterprisesharepoint -v --ntlm --negotiate -u USER123:PASSWORD123

这对我来说很好,你可以看到标题消息

- 编辑 -

如果你把negotiation,这给了本地帐户并使用服务器登录,如果用户名和密码不正确,那没关系,因为negotiation会为本地登录的用户使用windows帐户进行自动验证。如果您不喜欢这种行为,您应该只输入 ntlm 以进行正确的 ntlm 登录。

于 2014-01-29T15:10:11.933 回答
18

以下作品

curl -X POST -k -v --ntlm --negotiate -u usernamehere -F "csv=@pt_update.csv" -F "op=add" "https://google.com/csv_import"

于 2013-04-02T21:52:27.487 回答