授權密鑰的 sssd 記憶體問題
我正在執行一個裝有 CentOS 7.4.1708 並應用了所有更新檔的伺服器。sssd 是 1.15.2 版本。
我有一個有效的 sssd 設置,它使我能夠使用儲存在 Active Directory 中的 SSH 公鑰登錄。
配置
實例已成功加入,這是我的
/etc/sssd/sssd.conf
:[sssd] domains = EXAMPLE.COM default_domain_suffix = EXAMPLE.COM config_file_version = 2 debug_level = 7 services = nss, pam, ssh [domain/EXAMPLE.COM] ad_domain = EXAMPLE.COM debug_level = 7 krb5_realm = EXAMPLE.COM realmd_tags = manages-system joined-with-samba cache_credentials = True id_provider = ad krb5_store_password_if_offline = True default_shell = /bin/bash ldap_id_mapping = True use_fully_qualified_names = True fallback_homedir = /home/%u@%d access_provider = ad ldap_user_ssh_public_key = sshPublicKey ad_access_filter = DOM:EXAMPLE.COM:(memberOf:1.2.840.113556.1.4.1941:=CN=ACL_DEV_APAC_developers,OU=ACL,OU=Group,OU=EXAMPLE,DC=EXAMPLE,DC=COM) [ssh] debug_level = 7 [nss] debug_level = 7
我的
/etc/ssh/sshd_config
包括AuthorizedKeysCommand /usr/bin/sss_ssh_authorizedkeys AuthorizedKeysCommandUser nobody
問題
使用者在記憶體有效期內(預設為 90 分鐘)只能登錄一次,否則將被拒絕訪問。請參閱https://pastebin.com/Jqc52MWH上的日誌。有關日誌,
debug_level = 9
請參閱https://pastebin.com/0uQ8MCuS
sss_ssh_authorizedkeys myadmin
當使用乾淨/超時的記憶體(甚至連續多次)執行時,執行效果很好。當我通過 ssh 登錄並嘗試直接執行它時,登錄的使用者不會返回任何內容,但我可以立即查詢(新/新)使用者。解決方法
添加
entry_cache_user_timeout = 5
到[domain/EXAMPLE.COM]
in/etc/sssd/sssd.conf
啟用每 5 秒登錄一次。更快的登錄是不可能的。較低的超時會延長登錄時間。解決方案
有人解決這個問題嗎?
查看最新狀態的錯誤報告 - https://pagure.io/SSSD/sssd/issue/3534
解決方法 1
將 ldap 屬性 sshPublicKey 添加到全域編錄可解決該問題。有關說明,請參閱https://blogs.technet.microsoft.com/scotts-it-blog/2015/02/28/ad-ds-global-catalogs-and-the-partial-attribute-set/。該屬性應如下所示:
解決方法 2
或者,可以添加
ad_enable_gc = false
到域配置中。然後全域編錄將僅用於跨域組成員身份。詳情請參閱man sssd-ad
。