AWS Directory Service
管理指南 (版本 1.0)
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

Linux 域加入错误

以下内容可帮助您排除在将 EC2 Linux 实例加入 AWS Managed Microsoft AD 目录时可能遇到的一些错误消息。

Linux 实例无法加入域或进行身份验证

Ubuntu 14.04、16.04 和 18.04 实例在 DNS 中必须可以反向解析,领域才能使用 Microsoft AD。否则,您可能会遇到以下两种场景之一:

场景 1:Ubuntu 实例尚未加入领域

对于尝试加入领域的 Ubuntu 实例,则该 sudo realm join 命令可能不会提供加入域所需的权限并可能显示以下错误:

! 无法通过 Active Directory 身份验证:SASL(-1):一般故障:GSSAPI 错误:提供了无效的名称(成功)adcli:无法连接到 EXAMPLE.COM 域:无法通过 Active Directory 身份验证:SASL(-1):一般故障:GSSAPI 错误:提供了无效的名称(成功)! 权限不足,无法加入域领域:无法加入领域:权限不足,无法加入域

场景 2:Ubuntu 实例已加入领域

对于已加入 Microsoft AD 域的 Ubuntu 实例,SSH 尝试使用域凭证进入实例可能会失败,并显示以下错误:

$ ssh admin@EXAMPLE.COM@198.51.100

没有此类身份:/Users/username/.ssh/id_ed25519:没有找到此文件或目录

admin@EXAMPLE.COM@198.51.100 的密码:

权限被拒绝,请重试。

admin@EXAMPLE.COM@198.51.100 的密码:

如果使用公有密钥登录到实例并勾选 /var/log/auth.log,您可能会看到以下有关无法找到用户的错误:

5 月 12 日 01:02:12 ip-192-0-2-0 sshd[2251]:pam_unix(sshd:auth):身份验证失败;logname= uid=0 euid=0 tty=ssh ruser= rhost=203.0.113.0

5 月 12 日 01:02:12 ip-192-0-2-0 sshd[2251]:pam_sss(sshd:auth):身份验证失败;logname= uid=0 euid=0 tty=ssh ruser= rhost=203.0.113.0 user=admin@EXAMPLE.COM

5 月 12 日 01:02:12 ip-192-0-2-0 sshd[2251]:pam_sss(sshd:auth):用户 admin@EXAMPLE.COM 已收到:10(底层身份验证模块不知道的用户)

5 月 12 日 01:02:14 ip-192-0-2-0 sshd[2251]:来自 203.0.113.0 端口 13344 ssh2 的无效用户 admin@EXAMPLE.COM 的密码失败

5 月 12 日 01:02:15 ip-192-0-2-0 sshd[2251]:已通过 203.0.113.0 [preauth] 关闭连接

但是,用户的 kinit 仍然有效。例如:

ubuntu@ip-192-0-2-0:~$ kinit admin@EXAMPLE.COM admin@EXAMPLE.COM 的密码:ubuntu@ip-192-0-2-0:~$ klist 票证缓存:FILE:/tmp/krb5cc_1000 默认委托人:admin@EXAMPLE.COM

解决办法

这两种场景当前推荐的解决方法是禁用 [libdefaults] 部分 /etc/krb5.conf 中的反向 DNS,如下所示:

[libdefaults] default_realm = EXAMPLE.COM rdns = false