来自非域名机器的Kerberos PuTTY通过VPN

感觉像我在这里失去了一些基本的东西…

有一台非域名机器(离线个人机器)从我的VPN进入我们的工作networking。 一旦连接,从'klist',看起来我的VPN客户端(瞻博networking)已经谈妥了一个Kerberos票证(krbtgt / @)。 另请注意,本机的本地login用户名与我的Active Directory用户名不同。

然后,我希望使用启用了GSSAPI / Kerberos的PuTTY连接到Linux主机(Linux主机已正确设置为SSSD,并接受来自类似工作域成员的类似PuTTY实例的GSSAPIlogin)。 但是,我会在login时提示input密码,而不是简单地通过。

有没有一种方法可以在我在klist中看到的票证上明确指出PuTTY? 我是否需要尝试获得新票? 如果是这样,怎么样? 我需要不同types的门票(主机与krbtgt)吗? 我用ksetup / MapUser进行了试验,尝试将我的本地用户帐户映射到我在klist中看到的票据,但是我的语法出现故障,不知道是不是正确的树会被咆哮。

很明显,我在这里有其他的login替代scheme,但想知道发生了什么事情。

提前致谢!

Windows内置的Kerberos客户端能够自行处理这个问题。 你只需要给它一点指导,先find给定领域的KDC。 这有点像Windows的krb5.conf文件。

从提升的cmd提示符下,为您要使用的每个KDC运行:

ksetup /addkdc REALM.EXAMPLE.COM mykdc.realm.example.com 

现在,即使你的VPN客户端还没有得到你的TGT。 您可以执行以下操作以在您的Curb主体上下文中打开cmd提示符。

 runas /netonly /user:[email protected] cmd 

然后从那个提示:

 putty -ssh [email protected] 

假设您的默认PuTTY设置已启用GSSAPI,这应该将您直接login到主机,并且Windows将在您的过程中拉动您的TGT。 从技术上讲,你可以用putty命令代替runas命令的cmd 。 但我更喜欢保持一个通用的cmd提示符打开,我可以用于其他连接或应用程序。

所以,这里的答案是使用麻省理工学院的Kerberos for Windows(如果在Windows机器上)来获得票证。 然后,PuTTY将尝试使用此密钥 – 并且可以明确确保MIT堆栈通过PuTTYconfiguration中的GSSAPI身份validation选项进行确认。

在Unix上,您可以使用CLI中的常规kinit工具来获取票据。