1. kerberos 的 TGT/TGS 票据缓存(ccache)与 keytab 在无密码登录与跨节点调度中的取舍?
Kerberos 的 TGT/TGS 票据缓存(ccache)与 keytab 在无密码登录与跨节点调度场景下各有什么取舍?
- ccache 缓存票据实现无密码、免交互的 SSO 登录
- keytab 存放长期密钥,用于无密码初始认证
- 跨节点调度(如 HPC/Spark)中两种方式的取舍与安全差异
Kerberos 中 ccache(凭证缓存)保存用户获取的 TGT 与 TGS 票据,利用票据时效,使后续认证无需再输密码,实现单点登录(SSO);但 ccache 是短期凭证,需定期 renew,且明文保存在文件系统,需保证权限与加密。keytab(key table)存放长期密钥(长期密钥即用户密码的哈希形式),程序可用它无密码地向 KDC 获得初始 TGT,适合无人值守的服务进程;但 keytab 一旦泄露等于泄露长期凭据,风险更高。在跨节点调度(如 HPC、Spark)中,ccache 因票据可跨节点复用、支持票据转发(forwardable)而便于在计算节点间传递身份,但需注意票据有效期与 renew 管理;keytab 则便于为服务账号提供服务身份,但需严格管控 keytab 文件权限与轮换。
取舍关键在于"短期票据 vs 长期密钥"的信任与生命周期。ccache 短期、可 renew、适合交互式 SSO 与票据转发;keytab 长期、固定、适合服务进程,但泄露后果严重。跨节点调度常结合两者:入口用 keytab 获取 TGT,节点间用 ccache 传递票据。