本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Linux 域加入錯誤
以下內容可協助您疑難排解將 EC2 Linux 執行個體加入 AWS Managed Microsoft AD 目錄時,可能遇到的一些錯誤訊息。
Linux 執行個體無法加入網域或驗證
Ubuntu 14.04,16.04 和 18.04 實例必須在 DNS 中進行反向解析,然後一個領域才能與 Microsoft 活動目錄一起工作。否則,您可能會遇到以下兩種情況之一:
情況 1:尚未加入領域的 Ubuntu 執行個體
對於嘗試加入領域的 Ubuntu 執行個體,sudo realm
join
命令可能無法提供加入網域的所需許可,並可能顯示以下錯誤:
! Couldn't authenticate to active directory: SASL(-1): generic failure: GSSAPI Error: An invalid name was supplied (Success) adcli: couldn't connect to EXAMPLE.COM domain: Couldn't authenticate to active directory: SASL(-1): generic failure: GSSAPI Error: An invalid name was supplied (Success) ! Insufficient permissions to join the domain realm: Couldn't join realm: Insufficient permissions to join the domain
情況 2:已加入領域的 Ubuntu 執行個體
對於已加入 Microsoft Active Directory 網域的 Ubuntu 執行個體,嘗試使用網域認證進入執行個體的 SSH 可能會失敗,並顯示下列錯誤:
$ ssh admin@EXAMPLE.COM@198.51.100
no such identity: /Users/username/.ssh/id_ed25519: No such file or directory
admin@EXAMPLE.COM@198.51.100's password:
Permission denied, please try again.
admin@EXAMPLE.COM@198.51.100's password:
如果您使用公有金鑰登入執行個體並查看 /var/log/auth.log
,可能會看到下列有關無法找到使用者的錯誤:
May 12 01:02:12 ip-192-0-2-0 sshd[2251]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=203.0.113.0
May 12 01:02:12 ip-192-0-2-0 sshd[2251]: pam_sss(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=203.0.113.0 user=admin@EXAMPLE.COM
May 12 01:02:12 ip-192-0-2-0 sshd[2251]: pam_sss(sshd:auth): received for user admin@EXAMPLE.COM: 10 (User not known to the underlying authentication module)
May 12 01:02:14 ip-192-0-2-0 sshd[2251]: Failed password for invalid user admin@EXAMPLE.COM from 203.0.113.0 port 13344 ssh2
May 12 01:02:15 ip-192-0-2-0 sshd[2251]: Connection closed by 203.0.113.0 [preauth]
不過,kinit
對於使用者仍然有效。請看如下範例:
ubuntu@ip-192-0-2-0:~$ kinit admin@EXAMPLE.COM Password for admin@EXAMPLE.COM: ubuntu@ip-192-0-2-0:~$ klist Ticket cache: FILE:/tmp/krb5cc_1000 Default principal: admin@EXAMPLE.COM
解決方法
目前對於這兩種情況的建議解決方法是停用 /etc/krb5.conf
中 [libdefaults] 區段的反向 DNS,如下所示:
[libdefaults] default_realm = EXAMPLE.COM rdns = false
無縫域加入的單向信任身分驗證問題
如果您在AWS受管理的 Microsoft AD 和內部部署 Active Directory 之間建立了單向傳出信任,則在嘗試使用 Winbind 的受信任 Active Directory 認證對網域加入的 Linux 執行個體進行驗證時,可能會遇到驗證問題。
錯誤
Jul 31 00:00:00 EC2AMAZ-LSMWqT sshd[23832]: Failed password for user@corp.example.com from xxx.xxx.xxx.xxx port 18309 ssh2
Jul 31 00:05:00 EC2AMAZ-LSMWqT sshd[23832]: pam_winbind(sshd:auth): getting password (0x00000390)
Jul 31 00:05:00 EC2AMAZ-LSMWqT sshd[23832]: pam_winbind(sshd:auth): pam_get_item returned a password
7 月 31 日 00:05: 請求失敗:WBC_ER_AUTH 錯誤, PAM_ 溫綁定 (身份驗證): 請求 wbcLogonUser 失敗:WBC_ER_ 驗證錯誤, PAM 錯誤:系統錯誤:找不到錯誤訊息:物件名稱。
Jul 31 00:05:00 EC2AMAZ-LSMWqT sshd[23832]: pam_winbind(sshd:auth): internal module error (retval = PAM_SYSTEM_ERR(4), user = 'CORP\user')
解決方法
若要解決此問題,您需要執行下列步驟以註解或移除 PAM 模組組態檔 (/etc/security/pam_winbind.conf
) 中的指令。
-
在文字編輯器中開啟
/etc/security/pam_winbind.conf
檔案。sudo vim /etc/security/pam_winbind.conf
-
註解或移除以下指令 krb5_auth = yes。
[global] cached_login = yes krb5_ccache_type = FILE #krb5_auth = yes
-
停止 Winbind 服務,然後重新啟動它。
service winbind stop or systemctl stop winbind net cache flush service winbind start or systemctl start winbind