我想访问外国领域的资源,FR. LR和FR之间没有Kerberos信任,但它们允许彼此之间的TCP流量.我通过KDC(Red Hat IdM / FreeIPA)请求FRT for FR,并在受到挑战时成功输入我的密码.同样,我可以使用MIT Kerberos for Windows ver查看TGT. 4.0.1.我现在可以通过SSH访问FR中的资源而不需要输入密码,尽管源自LR.
问题是当我获得FR的TGT时,我的LR主体的TGT消失了.在MIT Kerberos中只能看到FR TGT.如果我锁定我的电脑,然后用我的密码解锁,现在FR TGT已经消失,取而代之的是新的LR TGT.
似乎MIT Kerberos for Windows一次只能存储一个TGT.每个TGT完全适用于所有意图和目的的领域.如何配置MIT Kerberos让我一次拥有两个TGT,每个领域一个?是否可以使用多个客户端实例“划分”,每个客户端实例指向不同的KRB5_CONFIG和本地密钥表?如果我不能,是否有一个客户端Kerberos 5的替代Windows实现,即使没有跨域信任?
附: – 我不想要信任.无法获得信任.
更新:我之前遗漏了一些细节,因为我认为它可能会混淆这个问题.但根据布拉德的回答,这可能是有道理的.我希望大多数本地软件都使用Kerberos的内置Windows实现,并始终使用LR keytab.
但是,像我这样的高级用户在Cygwin下使用heimdal来SSH到FR.我希望通过Cygwin DLL的任何东西都能使用heimdal并且永远不会看到LR TGT(它没有,至少在默认情况下不会这样).我明确地说,继续前进.
对于非高级用户来说,棘手的部分是我必须支持谁不使用Cygwin但使用PuTTY. PuTTY允许您指定要使用的GSSAPI实现的库路径和DLL.例如,我正在配置SSH会话以使用MIT Kerberos DLL而不是内置的Windows DLL.我希望有一个DLL,从来没有试图找到LR TGT(像heimdal)或允许多个领域的多个TGT.它没有像MIT Kerberos那样的GUI窗口,但它有所帮助.
现在,您可能已经知道,鉴于您的知识已经显示在您的问题中,所以我会说,基于Windows存储您在发布TGT时获得的密钥并且基于会话的事实,我不会认为只有Windows才有可能. MIT Kerberos for Windows可能有一种方法可以在一个用户下启动两个会话,但即使这样,我也不确定您访问的资源如何知道要使用哪个票证/密钥对.那有意义吗?
Please see this for a description of how Windows stores TGTs/key pairs.
顺便说一句非常好的问题.