Kerberos + Ldap 设置无法与 ssh 配合使用

Kerberos + Ldap 设置无法与 ssh 配合使用

我在同一台服务器中有一个 Kerberos 5 + LDAP 配置。

它们都运行良好(我认为)。请求 TGT 时,Kerberos 运行良好。

当我尝试通过无密码 ssh 从客户端 1 登录到客户端 2 时出现了问题...即使我有一个有效的 TGT,它仍会不断要求我输入密码。

我发布了一些日志和配置。

客户端1 ssh_配置:

主持人 *

GSSAPIAuthentication 是
GSSAPIDelegateCredentials 是
GSSAPIKeyExchange 是

客户端2 sshd_配置:

GSSAPI 选项

GSSAPIAuthentication 是
GSSAPICleanupCredentials 是

Kerberos 选项

Kerberos 身份验证 是

尝试从客户端 1 获取 TGT:

kinit 管理员

密码[电子邮件保护]

清单

票证缓存:FILE:/tmp/krb5cc_0
默认主体:[电子邮件保护]

有效开始到期服务主体
23/05/13 15:35:45 24/05/13 01:35:45 krbtgt/[电子邮件保护]
续订至 24/05/13 03:35:45

尝试从客户端 1 ssh 到客户端 2:

Client1 shell 输出:

远程控制[电子邮件保护]

[电子邮件保护]的密码:

客户端2 /var/log/auth:

5 月 23 日 15:39:42 CLIENT2 sshd[31486]: 来自 192.168.1.173 的无效用户管理员
5 月 23 日 15:39:42 CLIENT2 sshd[31486]: 来自 192.168.1.173 端口 38326 的无效用户管理员未失败 ssh2

Client1 shell 输出:

清单

票证缓存:FILE:/tmp/krb5cc_0
默认主体:[电子邮件保护]

有效开始到期服务主体
23/05/13 15:35:45 24/05/13 01:35:45 krbtgt/[电子邮件保护]
续订至 24/05/13 03:35:45
23/05/13 15:40:24 24/05/13 01:35:45 主机/[电子邮件保护]
续订至 24/05/13 03:35:45

如您所见,CLIENT2 ssh2 甚至没有尝试向 kerberos 服务器进行身份验证。但 Kerberos 为 client1 提供了 client2 的 TGT。

我已经检查了连接或 DNS 问题...一切正常。

有什么帮助吗?提前致谢...

更新

@Steve:我已经检查了 /etc/pam.d/sshd,看起来那里没有 kerberos 配置...但是这是我在 nsswitch.conf 中所看到的:

#pre_auth-client-config # 密码:兼容
密码:files ldap
#pre_auth-client-config # 组:兼容
组:files ldap
#pre_auth-client-config # 影子:兼容
影子:files ldap

使用命令 pam-auth-update 我也选择了 Kerberos 身份验证。

谢谢...

答案1

client2 没有名为 admin 的帐户,因此所有尝试对该不存在的帐户进行身份验证的操作都将失败。sshd不会为不存在的帐户执行 GSSAPI。

如果该帐户应该存在于本地,则需要使用 创建它useradd。如果它存在于 LDAP 中,则请确保nss-ldap/nss-ldapd已正确配置(通常是/etc/ldap.conf)。

相关内容