我的本地计算机使用Windows 7 Pro,属于领域LR,由AD服务器管理。连接到该领域的网络后,我登录到计算机。我可以使用MIT Kerberos for Windows ver查看TGT。4.0.1。
我想访问外国领域FR中的资源。LR和FR之间没有Kerberos信任,但是它们允许彼此之间的TCP通信。我要求使用其KDC(Red Hat IdM / FreeIPA)的FR TGT,并在遇到挑战时成功输入密码。同样,我可以使用MIT Kerberos for Windows ver查看TGT。4.0.1。我现在可以通过SSH访问FR中的资源,而无需输入密码,尽管它源自LR。
问题是当我获得FR的TGT时,LR主体的TGT消失了。在MIT Kerberos中仅可见FR TGT。如果我锁定计算机,然后使用密码解锁,则FR TGT消失了,取而代之的是新的LR TGT。
看来用于Windows的MIT Kerberos一次只能存储一个TGT。每个TGT都可以为所有意图和目的完全发挥作用。如何配置MIT Kerberos,让我一次拥有两个TGT,每个领域一个?是否可以对多个客户端实例进行“隔离”,每个实例都指向不同的KRB5_CONFIG和本地密钥表?如果无法这样做,即使没有域间信任,也存在Windows客户端Kerberos 5的替代实现吗?
PS-我不要信任。无法获得信任。
更新:我早些时候省略了一些细节,因为我认为这可能会使问题困惑。但是根据布拉德的回答,这可能是有根据的。我希望大多数本地软件都将使用Kerberos的内置Windows实现,并始终使用LR keytab。
但是,像我这样的高级用户会在Cygwin下使用heimdal SSH进入FR。我希望通过Cygwin DLL的任何东西都使用heimdal,并且永远不会看到LR TGT(它不会,至少默认情况下不会)。我明确地初始化并继续。
棘手的部分出现在非超级用户身上,我必须支持那些不使用Cygwin但使用PuTTY的用户。PuTTY确实允许您指定要使用GSSAPI实现的库路径和DLL。例如,我将SSH会话配置为使用MIT Kerberos DLL而不是内置Windows DLL。我希望那里有一个从未尝试找到LR TGT(例如heimdal)的DLL,或者允许来自多个领域的多个TGT。它不必像MIT Kerberos一样具有GUI窗口,但它可以提供帮助。