我们使用 sssd 来管理用户,使用来自 Samba AD 域控制器的帐户信息。
Linux 客户端上的 sssd 配置如下:
[sssd]
services = nss, pam,ssh
config_file_version = 2
domains = EXAMPLE.DOMAIN.EU
[ssh]
debug_level = 3
[nss]
debug_level = 3
filter_users = root
filter_groups = root
default_shell = /bin/bash
[pam]
debug_level = 3
[domain/EXAMPLE.DOMAIN.EU]
debug_level = 3
id_provider = ad
access_provider = ad
override_homedir = /home/%u
ad_server = adserver
enumerate = true
cache_credentials = true
create_homedir = true
ldap_user_ssh_public_key = sshPublicKey
ad_gpo_access_control = disabled
为了实现这一点,客户端系统需要加入域。在加入过程中,他们会收到 Kerberos 票证。Kerberos 配置如下所示:
[libdefaults]
default = DOMAIN.EU
default_realm = EXAMPLE.DOMAIN.EU
dns_lookup_realm = true
dns_lookup_kdc = true
fcc-mit-ticketflags = true
[realms]
EXAMPLE.DOMAIN.EU = {
kdc = adserver
admin_server = adserver
default_domain = domain.eu
}
DOMAIN.EU = {
kdc = adserver
admin_server = adserver
}
[domain_realm]
.domain.eu = EXAMPLE.DOMAIN.EU
domain.eu = EXAMPLE.DOMAIN.EU
在 Samba AD 域控制器上使用相同的配置文件会导致 sssd 启动失败,因为 kerberos 找不到机器票:
[find_principal_in_keytab] (0x0020): krb5_kt_start_seq_get failed.
将服务器加入域可能是错误的。
Samba AD 域控制器上 sssd 的正确配置是什么样的?