从缓存中删除单个 kerberos 主体

问题描述 投票:0回答:1

我的 kerberos 缓存中有一些主体:

$ klist
Ticket cache: FILE:/tmp/krb5cc_1234
Default principal: [email protected]

Valid starting       Expires              Service principal
04/21/2024 23:51:59  04/22/2024 02:37:58  krbtgt/[email protected]
        renew until 04/22/2024 23:51:46
04/21/2024 23:51:57  04/22/2024 02:37:58  HTTP/[email protected]
        renew until 04/22/2024 23:51:46

我想删除一个条目(本例中为

HTTP/[email protected]
),同时保留其他所有内容。我尝试过,但失败了:

$ kdestroy -p HTTP/[email protected]
kdestroy: Matching credential not found while finding cache for HTTP/[email protected]

我该怎么办?

kerberos
1个回答
0
投票

由于您的“krbtgt”票证是可续订的,最简单的方法是使用以下方式续订:

kinit -R

这会产生丢弃所有其他服务票据的副作用(通常没有必要保留其余的,因为它们将使用 TGT 重新获取)。

除此之外,MIT Kerberos 没有任何命令行工具来对票证缓存的内容进行精确编辑 - 它有

krb5_cc_remove_cred()
API,但没有方便的方法来使用它(python-pykrb5 有部分krb5_cc_*() API,但还不是这个特定的 API)。 Heimdal Kerberos 确实有
kcpytkt
,它允许手动将票据一张一张复制到新的缓存中。

(一个解析基于文件的 ccache 并重写的自定义程序,编写起来相当简单(它是一个小标头和一系列记录),但目前我只有一个方便的 keytab 解析器;没有一个用于票证缓存的解析器.)

© www.soinside.com 2019 - 2024. All rights reserved.