腻子Kerberos / GSSAPIauthentication

我在RHEL6上使用sssdconfiguration了几台Linux服务器,用Active Directory Kerberos进行身份validation。 我也启用GSSAPI身份validation,希望无密码login。

但我似乎无法得到腻子(0.63)没有密码进行身份validation。

GSSAPI适用于configuration为AD身份validation的Linux系统(openSSH客户端),使用.ssh / config设置启用GSSAPI。

它也可以从Cygwin(openSSH客户端)使用,使用相同的.ssh / config设置以及运行kinit命令来获取票据。

另外,Samba在所有的Linux系统上共享,包括主目录在Windows资源pipe理器上工作而不需要密码(我不确定GSSAPI是否在那里发挥作用)

我可以尝试对此进行哪些排查? 我的大多数用户使用腻子。 另外,我不是Windowspipe理员,所以我不能在域控制器上做任何事情。 我的帐户只具有将服务器添加到AD域的权限。


我打开了putty SSH数据包日志logging。 我发现这种有趣的,我不知道如何处理这些信息:

Event Log: Server version: SSH-2.0-OpenSSH_5.3 Event Log: Using SSH protocol version 2 Event Log: We claim version: SSH-2.0-PuTTY_Release_0.63 Outgoing packet #0x0, type 20 / 0x14 (SSH2_MSG_KEXINIT) Incoming packet #0x0, type 20 / 0x14 (SSH2_MSG_KEXINIT) Event Log: Doing Diffie-Hellman group exchange Outgoing packet #0x1, type 30 / 0x1e (SSH2_MSG_KEX_DH_GEX_REQUEST) Incoming packet #0x1, type 31 / 0x1f (SSH2_MSG_KEX_DH_GEX_GROUP) Event Log: Doing Diffie-Hellman key exchange with hash SHA-256 Outgoing packet #0x2, type 32 / 0x20 (SSH2_MSG_KEX_DH_GEX_INIT) Incoming packet #0x2, type 33 / 0x21 (SSH2_MSG_KEX_DH_GEX_REPLY) Outgoing packet #0x3, type 21 / 0x15 (SSH2_MSG_NEWKEYS) Event Log: Initialised AES-256 SDCTR client->server encryption Event Log: Initialised HMAC-SHA1 client->server MAC algorithm Outgoing raw data at 2014-11-25 00:21:08 Incoming packet #0x3, type 21 / 0x15 (SSH2_MSG_NEWKEYS) Event Log: Initialised AES-256 SDCTR server->client encryption Event Log: Initialised HMAC-SHA1 server->client MAC algorithm Outgoing packet #0x4, type 5 / 0x05 (SSH2_MSG_SERVICE_REQUEST) Incoming packet #0x6, type 51 / 0x33 (SSH2_MSG_USERAUTH_FAILURE) ...%gssapi-keyex ,gssapi-with-mic ,password. Event Log: Using SSPI from SECUR32.DLL Event Log: Attempting GSSAPI authentication Outgoing packet #0x6, type 50 / 0x32 (SSH2_MSG_USERAUTH_REQUEST) Incoming packet #0x7, type 60 / 0x3c (SSH2_MSG_USERAUTH_GSSAPI_RESPONSE) Event Log: GSSAPI authentication initialised Outgoing packet #0x7, type 61 / 0x3d (SSH2_MSG_USERAUTH_GSSAPI_TOKEN) Incoming packet #0x8, type 61 / 0x3d (SSH2_MSG_USERAUTH_GSSAPI_TOKEN) Event Log: GSSAPI authentication initialised Event Log: GSSAPI authentication loop finished OK Outgoing packet #0x8, type 66 / 0x42 (SSH2_MSG_USERAUTH_GSSAPI_MIC) Incoming packet #0x9, type 51 / 0x33 (SSH2_MSG_USERAUTH_FAILURE) ...%gssapi-keyex ,gssapi-with-mic ,password. 

在属于Active Directory域的Windows计算机上,用户在login到Windows时收到Kerberos票据授予票据,如果在PuTTYconfiguration连接中启用GSSAPI身份validation,则PuTTY可以使用该身份validation进行身份validation| SSH | Auth | GSSAPI (以及在GSSAPI之前尝试的其他身份validation方法(例如,通过Pageant的公钥)不在Connection | SSH | Auth中设置或禁用)。

[如果还需要票证授权(例如,在login后在服务器上安装Kerberized文件系统),请确保在PuTTY中也启用了GSSAPI委派, 并且在委派选项卡中将login的服务器标记在Active Directory中“ 信任这台计算机委派给任何服务(仅限Kerberos) ”,它们不是默认的。 后者在AD中的信任设置奇怪地只需要委托来从像PuTTY的Windows客户端工作; Linux“ssh -K”客户端不需要。

在不属于Active Directory域的自我pipe理(个人)Windows计算机上,仍然可以通过PuTTY使用Kerberos / GSSAPI身份validation(和票证委托),但必须自行获取票证。 不幸的是,Windows 7没有安装任何等价的kinit程序(为了手动请求一个票据),如果您没有票据,PuTTY也不会提示您inputKerberos密码。 因此,您必须安装MIT Kerberos for Windows软件包,其中包括通常的kinit / klist / kdestroy命令行工具,以及一个整洁的GUI工具“MIT Kerberos Ticket Manager”。 使用这些来获得您的票,然后腻子将自动使用麻省理工学院GSSAPI库而不是微软的,它应该都工作。 如果“MIT Kerberos票务pipe理器”正在运行,当PuTTY需要票证时,它将自动提示您inputKerberos密码,因此将它从Startup文件夹链接起来是个不错的主意。

问题出在Windows Kerberos安装程序中。 我认为我们的活动目录设置时髦,我不知道我不是一个Windowspipe理员。

但是我通过在Windows 7 CLI中使用ksetup手动configurationKerberos来解决此问题。

在重新启动到我的远程工作站后,我无法login到我的电脑。 这是因为在原始configuration中,我领域的TLD部分总是缺失(域\用户),但是在手动configuration之后,我必须更改我的login域以反映完整领域域名(domain.TLD \ user)和我能够login到我的Windows PC,虽然现在authentication需要更长的时间。

在更改之前,ksetup的输出只显示了我的默认领域,而且是小写的。

我使用“nslookup -type = SRV _kerberos._tcp.domain.TLD”来获取我的领域的所有kdc服务器。

我没有设置任何标志。

我设置了我的用户名“ksetup / mapuser [email protected]用户”

我使用的资源: https : //wiki.ncsa.illinois.edu/display/ITS/Windows+7+Kerberos+Login+using+External+Kerberos+KDC

https://www.cgl.ucsf.edu/Security/CGLAUTH/CGLAUTH.html

如果任何人有任何build议,我可以给Windowspipe理员如何解决这个问题(是否坏了),我会传递给他们。

首先仔细检查一下,运行PuTTY的Windows机器上的klist输出显示了一个有效的TGT。 然后在您的PuTTY会话的configuration中,确保在Connection - SSH - Auth - GSSAPI启用了尝试GSSAPI身份 Connection - SSH - Auth - GSSAPI 。 最后,确保它已经configuration成在Connection - Data自动使用你的用户名login。 您可以显式指定用户名或select使用系统用户名的单选button。

从历史上看,这就是我通过Kerberos进行无密码SSHlogin所需要做的。