用 realmd 加域是最稳路径,因其自动整合 sssd、kerberos 与 winbind,避免手动配置 sssd.conf 或 krb5.conf 时因大小写、空格、缩进等细微错误导致失败;加域前须确保 dns 能解析 ad 的 srv 记录且系统时间与域控偏差 ≤5 分钟。

用 realmd 加域是当前最稳路径,手动配 sssd.conf 或 krb5.conf 容易因大小写、空格、缩进错一个字符就失败。
验证 DNS 和时间是否达标
SSSD 连 AD 前必须过两关:DNS 能解析 SRV 记录,系统时间与域控偏差 ≤5 分钟。Kerberos 不讲情面,差 6 秒都报 kinit: Cannot find KDC。
- 查 DNS:
nslookup -type=SRV _kerberos._tcp.YOURDOMAIN.COM必须返回域控主机名和端口;nslookup YOURDOMAIN.COM必须指向域控 IP,不是路由器或公网 DNS - 改 DNS 不要用直接改
/etc/resolv.conf—— RHEL7+/Ubuntu18.04+ 会覆盖它;改网卡配置:nmcli con mod ensX ipv4.dns "192.168.1.10"再nmcli con up ensX - 同步时间:
timedatectl set-ntp true,再确认/etc/chrony.conf的server行指向域控 IP(如server 192.168.1.10 iburst)
用 realmd 发现并加入域
realmd 封装了 SSSD + Kerberos + Winbind 的联动逻辑,比 net ads join 或手写配置出错率低得多,日志也集中好查。
- 装齐依赖:
yum install -y realmd sssd oddjob oddjob-mkhomedir samba-common-tools adcli(RHEL/CentOS)或apt install -y realmd sssd sssd-tools adcli samba-common-bin(Debian/Ubuntu) - 发现域:
realm discover YOURDOMAIN.COM—— 注意:域名必须全大写,小写会报No such realm found - 加入域:
realm join --user=Administrator YOURDOMAIN.COM,输密码后自动启用sssd、更新/etc/nsswitch.conf
控制谁可以登录:改 sssd.conf 的 access_provider
默认加域后所有域用户都能登录,生产环境必须限制。别信 realm permit 的临时授权——它不持久,重启服务就失效。
- 编辑
/etc/sssd/sssd.conf,在[domain/YOURDOMAIN.COM]段下加: access_provider = simple-
simple_allow_groups = ITadmin, LinuxAdmins(组名用逗号分隔,不带域名) -
simple_allow_users = audit(单独放行用户) -
use_fully_qualified_names = False(否则登录得输user@YOURDOMAIN.COM) - 改完执行:
chmod 600 /etc/sssd/sssd.conf && systemctl restart sssd
常见验证失败的三个硬坑
加域成功 ≠ 能登录。很多问题卡在 SSSD 启动后没拉到用户,或者家目录没创建。
-
id DOMAIN\username返回空?先看journalctl -u sssd -n 50,重点找Failed to initialize data provider或LDAP bind failed—— 多半是 DNS 或时间没调好 - 域用户 SSH 登录卡住?确认
oddjobd服务已启:systemctl enable --now oddjobd;oddjob-mkhomedir插件负责首次登录时建/home/username - sudo 权限不生效?
%ITadmin ALL=(ALL) ALL要写进/etc/sudoers,且组名必须和 AD 中完全一致(大小写、空格),不能带@YOURDOMAIN.COM
真正麻烦的不是加域动作本身,而是 DNS 解析链路上某一级缓存没清、sssd.conf 里一个等号前后多敲了空格、或者 krb5.conf 中 default_realm 和 [realms] 下的域名大小写不一致 —— 这些地方没有报错提示,只有反复重试和翻日志。











