我正在尝试获取 Kerberos 票证作为文件。Kerberos 服务器是 FreeIPA。
当我使用kinit USERNAME
电脑登录时,登录正常。当我使用查看票证时klist
,它显示信息
Ticket cache: KEYRING:persistent:1000:1000
Default principal: [email protected]
Valid starting Expires Service principal
08/15/2020 22:36:12 08/16/2020 22:36:08 krbtgt/[email protected]
它似乎存储在密钥环中。我如何从该密钥环中获取文件?
答案1
KRB5CCNAME
您可以通过环境变量或选项请求传统的基于文件的 ccache 格式-c
:
$ export KRB5CCNAME="FILE:/tmp/krb5cc_$UID"
$ kinit
$ hexdump -C /tmp/krb5cc_$UID
或者,如果您只对单个票证的内容感兴趣,您可以使用来keyctl
提取它们(它们存储为单独的键):
$ pp=$(keyctl get_persistent @s)
$ keyctl show $pp
Keyring
718513420 ---lswrv 2001 65534 keyring: _persistent.2001
952719927 --alswrv 2001 100 \_ keyring: _krb
986359066 --alswrv 2001 100 \_ user: krb_ccache:primary
1022423951 --alswrv 2001 100 \_ keyring: 2001
741425749 --alswrv 2001 100 \_ user: __krb5_princ__
350568129 --als-rv 2001 100 \_ big_key: krbtgt/[email protected]
记下最左边的列中的密钥 ID,然后使用:
$ keyctl pipe 350568129 | dumpasn1
最后,您可以使用 libkrb5 API 来遍历凭证和转储cred->ticket
;例子。