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

Ale*_*x Q 5 shell https kerberos download

我正在尝试从Linux shell下载脚本,通过https来保护网络服务器,该文件受到kerberos身份验证的保护.我尝试过使用wget和curl,但这些似乎都不支持kerberos而不是https.

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

use*_*737 11

如果它有GSS-Negotiate,它完全有可能卷曲.检查curl -V它应该返回一个带有GSS-Negotiate功能行(Ubuntu 12.04包含它).您还需要Kerberos客户端工具(如Ubuntu)并使用REALM和kdc进行设置.请参阅MIT文档krb5-user/etc/krb5.conf

首先,您必须能够从Web服务器使用的相同KDC获取票证(忽略更复杂的可能性).此外,您要访问的域必须具有正确的反向指针或在您的配置中/etc/hosts检查您的DNS.

从...开始 kinit <some user principal>

然后,您可以卷曲到要检查的URL.一个假的用户需要卷曲接受你谈判(但不实际使用,什么都无所谓的用户名和密码).我还用--trace-ascii-得到的Kerberos错误.

例如:

 curl  --negotiate -u foo --trace-ascii -  http://intranet/
Run Code Online (Sandbox Code Playgroud)

如果你看到:

== Info: gss_init_sec_context() failed: : Credentials cache file '/tmp/krb5cc_0' not found<= Recv header, 29 bytes (0x1d)
Run Code Online (Sandbox Code Playgroud)

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

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

否则,如果服务器发送正确的HTTP/1.1 401: Authorization Required,WWW-Authenticate: Negotiate您将获得身份验证.


小智 6

检查curl手册页.您可以使用--negotiate来使用SPNego/GSSAPI/Kerberos.大多数网络服务器都支持SPNego.