加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

linux – Putty Kerberos / GSSAPI身份验证

发布时间:2020-12-13 17:58:03 所属栏目:Linux 来源:网络整理
导读:我配置了一些 Linux服务器,使用RHEL6上的sssd对Active Directory Kerberos进行身份验证.我还启用了GSSAPI身份验证,希望无密码登录. 但我似乎无法让Putty(0.63)在没有密码的情况下进行身份验证. GSSAPI在配置用于AD身份验证的Linux系统(openSSH客户端)之间工
我配置了一些 Linux服务器,使用RHEL6上的sssd对Active Directory Kerberos进行身份验证.我还启用了GSSAPI身份验证,希望无密码登录.

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

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

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

Samba也在所有Linux系统上共享,包括主目录在Windows资源管理器中运行而无需密码(我不确定GSSAPI是否在那里发挥作用)

我可以尝试哪种方法来解决这个问题?我的大多数用户都使用Putty.此外,我不是Windows管理员,因此我无法在域控制器上执行任何操作.我的帐户只有将服务器添加到AD域的权限.

我打开putty SSH数据包记录.我觉得这很有趣,我不知道该如何处理这些信息:

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,password.

解决方法

在属于Active Directory域的Windows计算机上,用户在登录Windows时会收到Kerberos票证授予票证,如果在PuTTY Configuration Connection中启用了GSSAPI身份验证,则PuTTY可以使用该票证进行身份验证| SSH | Auth | GSSAPI (以及在GSSAPI之前尝试的其他身份验证方法,例如通过Pageant的公钥,未在Connection | SSH | Auth中设置或禁用).

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

在不属于Active Directory域的自我管理(个人)Windows计算机上,您仍然可以通过PuTTY使用Kerberos / GSSAPI身份验证(和票证委派),但您必须自己获取票证.不幸的是,Windows 7没有安装任何等效的kinit程序(手动请求票证),如果您没有票证,PuTTY也不会提示您输入Kerberos密码.因此,您必须安装MIT Kerberos for Windows软件包,其中包括通常的kinit / klist / kdestroy命令行工具,以及一个简洁的GUI工具“MIT Kerberos Ticket Manager”.使用这些来获取您的票证,然后PuTTY将自动使用MIT GSSAPI库而不是Microsoft库,它应该都可以工作.如果“MIT Kerberos票证管理器”正在运行,当PuTTY需要票证时,它会自动提示您输入Kerberos密码,因此最好从Startup文件夹中链接它.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读