必须安装并配置Kerberos客户端、Samba和SSSD三套核心组件;仅装其一或二会导致kinit失败、net ads join报错或PAM认证卡住。

要在麒麟OS上实现与Windows AD域的统一身份认证,必须安装并配置Kerberos客户端、Samba和SSSD三套核心组件,缺一不可;只装其中一两个会导致kinit失败、net ads join报错或登录时卡在PAM阶段。
安装并验证Kerberos客户端
1. 执行sudo apt install krb5-user,安装过程中会弹出图形化提示框,【必须输入全大写的AD域名,例如KYLINOS.COM,不能输小写或带空格】。
2. 安装完成后,系统自动生成/etc/krb5.conf,但该文件默认不指向你的域控服务器。需手动编辑:执行sudo nano /etc/krb5.conf,将[libdefaults]段下的default_realm改为你的域名,再在[realms]段下添加对应条目,格式为:
KYLINOS.COM = {
KDC = dc01.kylinos.com
admin_server = dc01.kylinos.com
}
3. 保存退出后,运行kinit administrator@KYLINOS.COM测试。若提示Password:且无报错,再执行klist能看到有效TGT票据,说明Kerberos通路已通。如果报“Cannot contact any KDC for realm”,大概率是DNS没解析出dc01.kylinos.com,或防火墙阻断了UDP 88端口。
配置Samba并加入AD域
方法一:使用realmd自动发现(推荐)
1. 先安装依赖:sudo apt install realmd sssd sssd-tools libnss-sss libpam-sss adcli samba-common-bin。
2. 执行sudo realm discover KYLINOS.COM,成功会输出域信息,包括domain-name、realm-name、configured等字段。若显示“no such domain”,检查DNS是否指向域控IP,或确认域控是否启用了LDAP全局目录服务。
3. 运行sudo realm join --user=administrator KYLINOS.COM,输入密码后等待完成。这一步会自动调用net ads join、生成keytab、修改sssd.conf和nsswitch.conf。加入成功后,realm list应显示active状态。
方法二:手动执行net ads join(用于排错或定制场景)
1. 编辑/etc/samba/smb.conf,在[global]段追加三行:
直播话术巡检系统(Windows版) — 实时语音转写、关键词检测、场景自动切换、告警推送、大屏可视化。支持 Windows VB-Cable 虚拟声卡音频采集,阿里云 ASR 实时识别。一键启动脚本,自动安装环境。
security = ads
realm = KYLINOS.COM
workgroup = KYLINOS
2. 执行sudo net ads join -U administrator,输入密码。若报错“Failed to join domain”,常见原因是时间偏差超过5分钟——必须先用sudo ntpdate -s dc01.kylinos.com同步时间。
启用SSSD服务并验证登录能力
第一步:确认SSSD配置正确
执行sudo nano /etc/sssd/sssd.conf,确保[domain/KYLINOS.COM]段包含以下关键项:
id_provider = ad
auth_provider = ad
access_provider = ad
ldap_id_mapping = True
第二步:设置权限并启动服务
执行sudo chmod 600 /etc/sssd/sssd.conf,【权限不是600会导致SSSD拒绝启动】;然后运行sudo systemctl enable --now sssd。
第三步:验证域用户可解析
执行getent passwd administrator@KYLINOS.COM,应返回完整用户信息行;若无输出,检查/var/log/sssd/*.log中是否有“Unable to initialize LDAP connection”类错误。
第四步:测试图形界面登录
重启系统,在GDM登录界面输入administrator@KYLINOS.COM及密码。首次登录会自动创建家目录,耗时略长属正常现象。登录成功后,执行id应显示uid、gid及域组信息。

















