我正在尝试使用 API 凭据和 curl 查询 Sensu API(任何端点),如下所示:
$ curl -a 用户:密码http://sensu_api:url:4567/clients
我给出了一个:HTTP/1.1 401 Unauthorized
这些凭据是我在 /etc/sensu/config.json 中的 api 设置中配置的凭据,uchiwa 正在使用它们进行连接,没有任何问题。也许我错过了 curl 来查询它。不知道为什么。有任何想法吗?谢谢!
我正在尝试使用 API 凭据和 curl 查询 Sensu API(任何端点),如下所示:
$ curl -a 用户:密码http://sensu_api:url:4567/clients
我给出了一个:HTTP/1.1 401 Unauthorized
这些凭据是我在 /etc/sensu/config.json 中的 api 设置中配置的凭据,uchiwa 正在使用它们进行连接,没有任何问题。也许我错过了 curl 来查询它。不知道为什么。有任何想法吗?谢谢!
你不应该使用 -u 而不是 -a
-u,--用户
指定用于服务器身份验证的用户名和密码。覆盖 -n、--netrc 和--netrc-optional。
如果您只是指定用户名,curl 将提示输入密码。
用户名和密码在第一个冒号上分开,这使得使用此选项无法在用户名中使用冒号。密码还是可以的。
将 Kerberos V5 与基于 Windows 的服务器一起使用时,您应该在用户名中包含 Windows 域名,以便服务器成功获取 Kerberos 票证。如果您不这样做,那么初始身份验证握手可能会失败。
使用 NTLM 时,可以将用户名简单地指定为用户名,而无需域,例如,如果您的设置中有单个域和林。
要指定域名,请使用下级登录名或 UPN(用户主体名称)格式。例如,EXAMPLE\user 和 user@example.com 分别。
如果您使用启用了 Windows SSPI 的 curl 二进制文件并执行 Kerberos V5、Negotiate、NTLM 或 Digest 身份验证,那么您可以通过使用此选项指定单个冒号来告诉 curl 从您的环境中选择用户名和密码:“-u :” .
如果多次使用此选项,将使用最后一个。