哎呀!

哎呀!

我对 Samba 4 和 Kerberos 有一个问题。我有一个带 SSO 的 SSH。但现在当我安装 Samba 4 时,它不起作用,而且似乎还没有人找到任何解决方案。我刚刚读到,这真的很困难和复杂,或者在 Windows 上一切正常,但在 Linux 上我还没有成功等等。

问题是,Samba 4 以不同的方式实现 Kerberos。它似乎与 SSH 等 Linux 工具不兼容。当我sshd在调试模式下运行时,我看到它写道:

debug1: Unspecified GSS failure.  Minor code may provide more information
No key table entry found matching host/bolbro.barbucha.local@

但是我无法将此类主体添加到 Samba 主体数据库。(尽管它不存在,但写道samba-tool spn add,它受到另一个用户的影响。)

我的帖子可能听起来有些混乱,但我不得不说,我还不太明白到底是怎么回事,可能在我的文章中使用了一些错误的术语。你们有使用 Samba 4 和 SSH 客户端无需密码的经验吗?你们有没有在 Linux 客户端上成功使用过 Samba 4 和 SSO?

非常感谢任何提示或解释。(我正在使用 Debian Squeeze,Bolbro 是机器,运行 Samba 4 和 SSHD。同样的问题ksu也影响了。)

答案1

遗憾的是,我还没有找到这个问题的解决方案,但现在我的电脑上有类似的东西。为了让 NSLCD 使用 GSSAPI 工作,我在服务器端执行了以下命令:

#create an user with a random password
samba-tool user add --random-password ldap-connect
#the password must not expire
samba-tool user setexpiry --noexpiry ldap-connect
#create a SPN (security principal name)
samba-tool spn add nslcd/bolbro.barbucha.local ldap-connect
#export key table of the user ldap-connect
samba-tool domain exportkeytab krb5.nslcd.keytab --principal=ldap-connect

每个安全主体 ( nslcd) 都分配给一台计算机 ( bolbro.barbucha.local),并且使用此 SPN 的服务将作为用户进行身份验证 ( ldap-connect)。始终只能有一个安全主体<服务>/<机器>。您无法nslcd/bolbro.barbucha.local再次创建并将其分配给其他用户。安全主体host/bolbro.barbucha.local已经存在。我今天认为,只需导出分配了关键 SPN 的用户的密钥表就足够了。

我们拭目以待…

哎呀!

我今天(2014-03-02)找到了解决方案。是的,确实如此。我做了以下步骤:

  • 将客户端加入域:net ads join -U administrator,其中net是 Samba 实用程序之一
  • /etc/ssh/sshd_config服务器端和/etc/ssh/ssh_config客户端取消注释该行并用;GSSAPIAuthentication no覆盖,在客户端同样启用noyesGSSAPIDelegateCredentials
  • 执行双方命令net ads keytab create,以便将所需的密钥导出到/etc/krb5.keytab
  • /etc/hosts在服务器端添加了完全限定的服务器名称

我不知道为什么,但是当我sshd在服务器端以调试模式执行时(/usr/sbin/sshd -d)​​,我看到一条消息,说有未找到与 host/bolbro@ 匹配的密钥表条目。预期的服务器名称(klist -k /etc/krb5.keytab在服务器端列出)是bolbro.barbucha.local。附加服务器的 IP 地址和完全限定名称bolbro.barbucha.local即可/etc/hosts解决问题。

相关内容