首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有子/子AD域的Ubuntu错误

带有子/子AD域的Ubuntu错误
EN

Server Fault用户
提问于 2021-10-22 22:18:56
回答 1查看 2.7K关注 0票数 0

需要帮助验证连接到子域的linux (Ubuntu)服务器。我可以在域控制器上看到服务器名,并且能够成功地运行身份验证测试,但是我无法使用域帐户登录。似乎是SSSD或KRB5配置需要指定子域的某个配置设置。此外,这也不是域信任问题,因为连接到子域的Windows服务器正在接受父帐户的凭据。

代码语言:javascript
复制
kinit -V user@DOMAIN.SYS
Authenticated to Kerberos v5

root@SERVER:/var/log/sssd# systemctl status sssd

Oct 22 17:55:09 SERVER [sssd[ldap_child[27928]: Failed to initialize credentials using keytab [MEMORY:/etc/krb5.keytab]: Client 'SERVER$@DOMAIN.SYS' not found in Kerberos database. Unable to create GSSAPI-encrypted LDAP connection.

SSSD日志文件中的错误

代码语言:javascript
复制
Fri Oct 22 17:32:51 2021) [sssd[be[DOMAIN.SYS]]] [confdb_get_domain_internal] (0x0010): Unknown domain [CHILD.DOMAIN.SYS]
(Fri Oct 22 17:32:51 2021) [sssd[be[DOMAIN.SYS]]] [confdb_get_domains] (0x0010): Error (2 [No such file or directory]) retrieving domain [CHILD.DOMAIN.SYS], skipping!

SSSD配置

代码语言:javascript
复制
root@SERVER:cat /etc/sssd/sssd.conf
[sssd]
services = nss, pam
config_file_version = 2
domains = DOMAIN.SYS, CHILD.DOMAIN.SYS

[nss]
default_shell = /bin/bash

[domain/DOMAIN.SYS]
id_provider = ad
access_provider = ad
override_homedir = /home/%d/%u

ad_hostname = server.child.domain.sys
#ad_server = dc.child.domain.sys
#ad_domain = DOMAIN.SYS

KRB5配置

代码语言:javascript
复制
root@SERVER: cat /etc/krb5.conf
[libdefaults]
        default_realm = DOMAIN.SYS
        ticket_lifetime = 24h #
        renew_lifetime = 7d
        rdns = false

The following krb5.conf variables are only for MIT Kerberos.
        kdc_timesync = 1
        ccache_type = 4
        forwardable = true
        proxiable = true
EN

回答 1

Server Fault用户

回答已采纳

发布于 2021-10-26 02:03:56

你是怎么建立SSSD的?你做了realm discoverrealm join吗?如果没有,这是推荐的方法。我强烈建议你这么做。

您试过作为子域中的用户进行身份验证吗?*getent passwd myuser@CHILD.DOMAIN.SYS

从您提供的格式不良的信息中可以看出,sssd.conf中有两个域

代码语言:javascript
复制
[sssd] 
services = nss, pam 
config_file_version = 2 

domains = DOMAIN.SYS, CHILD.DOMAIN.SYS

[nss] 
default_shell = /bin/bash

[domain/DOMAIN.SYS] 
id_provider = ad 
access_provider = ad 

您有[domain/CHILD.DOMAIN.SYS]的部分吗?如果您执行realm list,会发生什么?这将向您展示在sssd.conf中正确配置的内容。

我不确定是否需要在父-子域情况中列出这两个域,但可能先尝试单独配置子域。或者至少把孩子放在domains列表的第一位。

代码语言:javascript
复制
domains = CHILD.DOMAIN.SYS
...
[domain/CHILD.DOMAIN.SYS] 
id_provider = ad 
access_provider = ad

如何对父域用户进行身份验证?您是要尝试SSH还是在服务器上尝试本地getent?是否使用完全限定的名称对父域用户进行身份验证?例如getent passwd myuser@DOMAIN.SYS

此错误表示它试图使用带有错误计算机名Client 'SERVER$@DOMAIN.SYS'的键签。如果它已加入到子域,则应该使用SERVER$@CHILD.DOMAIN.SYS。服务器密钥选项卡是否实际包含子域的正确服务器名称?

这就是为什么我建议简化这个问题,确保您可以首先使用子域凭据登录。虽然我真的认为如果不使用这种方法,您应该重新开始使用realm join

在这里尝试遵循故障排除步骤,特别是基本、后端和公共AD提供程序部分:https://sssd.io/troubleshooting/basics.html

(顺便说一句,我真的希望你的域名后缀不是真的.SYS)

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

https://serverfault.com/questions/1081454

复制
相关文章

相似问题

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