Centos7

授權密鑰的 sssd 記憶體問題

  • October 4, 2017

我正在執行一個裝有 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

引用自:https://serverfault.com/questions/876449