我遵循了 RedHat AD 集成中的配置 3(https://access.redhat.com/sites/default/files/attachments/rhel-ad-integration-deployment-guidelines-v1.5.pdf);但我被困住了。
我在 Centos 6.8 上。
我有一个有效的 AD 连接:
service sssd stop
rm -r /var/lib/sss/db/*
rm -r /var/lib/sss/mc/*
service sssd start
getent passwd [email protected]
这将返回一行有意义的内容:
robau:*:102201201:102200513:Rob Audenaerde:/:
但是,当我尝试通过 SSH 连接时,我无法登录。我在 中的所有组件级别 5 上启用了 SSSD 调试sssd.conf
。
我看到的错误(在var/log/sssd/krb5_child.log
)是:
(Fri Jun 17 17:23:18 2016) [[sssd[krb5_child[3561]]]] [validate_tgt] (0x0020): TGT failed verification using key for [host/[email protected]].
(Fri Jun 17 17:23:18 2016) [[sssd[krb5_child[3561]]]] [get_and_save_tgt] (0x0020): 1240: [-1765328377][Server not found in Kerberos database]
(Fri Jun 17 17:23:18 2016) [[sssd[krb5_child[3561]]]] [map_krb5_error] (0x0020): 1301: [-1765328377][Server not found in Kerberos database]
(Fri Jun 17 17:23:18 2016) [[sssd[krb5_child[3561]]]] [k5c_send_data] (0x0200): Received error code 1432158209
该服务器位于 DNS 中,我可以使用以下方式找到它nslookup
nslookup server-new.mynetwork.nl
Server: 192.168.110.56
Address: 192.168.110.56#53
Name: server-new.mynetwork.nl
Address: 192.168.210.94
和
kvno host/[email protected]
kvno: Server not found in Kerberos database while getting credentials for host/[email protected]
有任何故障排除的提示/技巧吗?
[编辑] 我曾经authconfig
设置过必要的pam
内容nss
:
authconfig --enablesssdauth --enablesssd --enablemkhomedir --update
输出klist -kte
:
25 06/20/16 10:56:24 host/[email protected] (des-cbc-crc)
25 06/20/16 10:56:24 host/[email protected] (des-cbc-md5)
25 06/20/16 10:56:24 host/[email protected] (aes128-cts-hmac-sha1-96)
25 06/20/16 10:56:24 host/[email protected] (aes256-cts-hmac-sha1-96)
25 06/20/16 10:56:24 host/[email protected] (arcfour-hmac)
25 06/20/16 10:56:24 host/[email protected] (des-cbc-crc)
25 06/20/16 10:56:24 host/[email protected] (des-cbc-md5)
25 06/20/16 10:56:25 host/[email protected] (aes128-cts-hmac-sha1-96)
25 06/20/16 10:56:25 host/[email protected] (aes256-cts-hmac-sha1-96)
25 06/20/16 10:56:25 host/[email protected] (arcfour-hmac)
25 06/20/16 10:56:25 [email protected] (des-cbc-crc)
25 06/20/16 10:56:25 [email protected] (des-cbc-md5)
25 06/20/16 10:56:25 [email protected] (aes128-cts-hmac-sha1-96)
25 06/20/16 10:56:25 [email protected] (aes256-cts-hmac-sha1-96)
25 06/20/16 10:56:26 [email protected] (arcfour-hmac)
输出klist
Ticket cache: FILE:/tmp/krb5cc_0
Default principal: [email protected]
Valid starting Expires Service principal
06/20/16 10:56:41 06/20/16 20:56:41 krbtgt/[email protected]
renew until 06/27/16 10:56:41
06/20/16 11:36:07 06/20/16 20:56:41 ldap/[email protected]
renew until 06/27/16 10:56:41
[编辑2]
如果我krb5_validate
在该部分末尾添加sssd.conf
[domain/mynetwork.local],那么我就可以登录。但是,我还设置了另一台不需要此步骤的服务器,所以我不愿意让它保持这样。
[编辑 3] 期间net ads join -k
我收到错误/警告:
DNS Update for failed: ERROR_DNS_GSS_ERROR
DNS update failed!
[编辑 4] 我看到的输出net ads info
未使用我在配置文件中指定的主域控制器(并且是 2003R2 而不是 2008R2)。有没有办法“强制”net ads join -k
使用特定的域控制器?
答案1
尝试安装并运行msktutil
(可通过 EPEL 获得)。
安装:
yum -y --enablerepo=epel install msktutil
运行它:
msktutil --auto-update --server my-ad --verbose
然后运行 kinit:
kinit -k server-new$
另外,您应该每隔 6 小时左右运行这两个作业。这样您的票就不会过期。
EDIT4 的答案:您应该能够使用 指定服务器net ads join -k -S
,但默认情况下它会在您的 DNS 中搜索 SRV 记录。这很好。除非您不想要那样。如果您希望特定站点使用与其他站点不同的 DC,请查看 Active Directory 站点和服务。
答案2
这通常是由于规范化引起的。尝试添加:
rdns=false
到 krb5.conf 以及
SASL_NOCANON true
到 ldap.conf
(这两者在 RHEL-7 中已经是默认设置)。