gpt4 book ai didi

shell - 使用 kerberos 身份验证从服务器下载文件

转载 作者:行者123 更新时间:2023-12-04 16:29:39 25 4
gpt4 key购买 nike

我正在尝试从 linux shell 编写脚本,通过使用 kerberos 身份验证保护的 https 从网络服务器下载文件。我试过使用 wget 和 curl,但它们似乎都不支持 https 上的 kerberos。

是否有通过 https 支持 kerberos 的 linux 命令行实用程序?如果是这样,你如何使用它?

最佳答案

如果 curl 具有 GSS-Negotiate,则完全有可能。查看 curl -V它应该返回一个带有 GSS-Negotiate 的 Features 行(Ubuntu 12.04 在包中)。您还需要 Kerberos 客户端工具(例如 Ubuntu 上的 krb5-user)并设置您的 /etc/krb5.conf与 REALM 和 kdc。见 MIT docs

首先,您必须能够从 Web 服务器使用的同一个 KDC 获得票证(忽略更复杂的可能性)。而且您要从中获取的域必须具有正确的反向指针或在您的 /etc/hosts 中进行配置。所以检查你的DNS。

kinit <some user principal> 开始

然后,您可以 curl 到要检查的 URL。 curl 需要一个假用户来接受你的协商(但实际上并没有使用,不管用户名或密码是什么。)我也使用了 --trace-ascii-获取 Kerberos 错误。

例如:

 curl  --negotiate -u foo --trace-ascii -  http://intranet/

如果你看到:
== Info: gss_init_sec_context() failed: : Credentials cache file '/tmp/krb5cc_0' not found<= Recv header, 29 bytes (0x1d)

然后你忘了 kinit或者它没有成功。

如果您看到类似的内容,但使用 krb5kdc_err_s_principal_unknown那么使用反向指针或主机条目构造的 kerberos 库的名称在 KDC 上没有对应的主体联系。

否则,如果服务器发送正确的 HTTP/1.1 401: Authorization RequiredWWW-Authenticate: Negotiate你得到认证。

关于shell - 使用 kerberos 身份验证从服务器下载文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11284309/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com