首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Putty Kerberos/GSSAPI认证

Putty Kerberos/GSSAPI认证
EN

Server Fault用户
提问于 2014-11-25 07:25:14
回答 3查看 44.1K关注 0票数 12

我在RHEL6上使用sssd配置了一些Linux服务器,以使用进行身份验证。我还启用了GSSAPI身份验证,希望能够进行无密码登录。

但我似乎无法让Putty (0.63)在没有密码的情况下进行身份验证。

GSSAPI在配置为AD身份验证的Linux系统(openSSH客户端)之间工作,使用. .ssh/config设置来启用GSSAPI。

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

此外,Samba在所有Linux系统上共享,包括主目录在Windows Explorer中工作而不需要密码(我不确定GSSAPI是否在那里起作用)

我能试着解决什么问题呢?我的大多数用户都使用Putty。而且,我不是一个Windows管理员,所以我不能在域控制器上做任何事情。我的帐户只具有将服务器添加到AD域的权限。

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

代码语言:javascript
复制
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.
EN

回答 3

Server Fault用户

回答已采纳

发布于 2015-07-15 10:57:22

在作为Active Directory域一部分的Windows机器上,用户登录到Windows时会收到他们的Kerberos票证授予票,如果在GSSAPI配置连接中启用了GSSAPI身份验证,则PuTTY可以使用该票证进行身份验证(以及在GSSAPI之前尝试的其他身份验证方法,如Pageant公钥,在Connection中未设置或禁用)。

如果您还需要票证委托(例如,在登录后在服务器上挂载),请确保在PuTTY中也启用了GSSAPI委托和登录到的服务器在“委托”选项卡的Active中标记为“信任这台计算机用于委托给任何服务(仅限Kerberos)在AD PuTTY这样的Windows客户端的委托;对于Linux "ssh中标记为”客户端则不需要它。

在不属于Active Directory域的自管理(个人) Windows机器上,您仍然可以通过PuTTY使用Kerberos/GSSAPI身份验证(和票证委托),但您必须自己获得票证。不幸的是,Windows 7并没有安装任何类似kinit程序的版本(供您手动请求票证),如果缺少票证,PuTTY也不会提示您输入Kerberos密码。因此,您必须安装用于Windows的麻省理工学院Kerberos包,它既包括通常的kinit/klist/ which命令行工具,也包括一个整洁的GUI工具“Manager票证管理器”。使用这些来获取您的票证,然后PuTTY将自动使用MIT库而不是Microsoft库,并且应该都能工作。如果“Manager票证管理器”正在运行,当PuTTY需要票证时,它将自动提示您输入Kerberos密码,因此从启动文件夹链接它是一个好主意。

更新:在Windows10Version21H1和Windows 2022中,内置于Windows的OpenSSH for Windows (Version8.1或更高版本)客户端和服务器现在也支持GSSAPI身份验证和委托(即ssh -K)。因此,如果您需要的是,到2021年,您不再需要安装PuTTY和。

票数 10
EN

Server Fault用户

发布于 2014-11-25 07:38:25

首先,重复检查运行PuTTY的Windows上的klist输出是否显示有效的TGT。然后,在PuTTY会话的配置中,确保在Connection - SSH - Auth - GSSAPI中启用了GSSAPI身份验证。最后,确保它被配置为在Connection - Data中自动使用您的用户名登录。您可以显式指定用户名,也可以选择单选按钮以使用系统用户名。

从历史上看,这是我需要做的所有工作,使无密码的SSH登录工作通过Kerberos。

票数 4
EN

Server Fault用户

发布于 2014-11-25 12:20:19

问题是在Windows Kerberos设置中。我认为我们的Active Directory设置得很时髦,我不知道我不是Windows管理员。

但是,我通过使用Windows 7 CLI中的ksetup手动配置Kerberos来解决这个问题。

在重新启动到我的远程工作站后,我无法登录到我的PC。这是因为在最初的配置中,我的领域域的TLD部分总是不存在(域\user),但是在手动配置它之后,我必须更改登录域以反映整个领域域名(domain.TLD\user),并且我能够登录到我的Windows,尽管现在似乎需要更长的时间进行身份验证。

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

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

我没有设置任何旗子。

我将我的用户名设置为“ksetup /mapuser user@domain.TLD user”

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

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

如果有人有任何建议,我可以给Windows管理员关于他们如何解决这个问题(它坏了吗?)我会把它传过去。

票数 4
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/646854

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档