我正在使用CentOS 7.4.1708运行一个服务器,并且应用了所有的修补程序。 sssd是版本1.15.2。
我有一个工作sssd设置,使我能够使用存储在Active Directory中的SSH公钥login。
configuration
实例成功join,这是我的/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
问题
用户只能在caching生存期内(默认为90分钟)login一次,否则将被拒绝访问。 请参阅https://pastebin.com/Jqc52MWH的日志。 对于debug_level = 9日志,请参阅https://pastebin.com/0uQ8MCuS
运行sss_ssh_authorizedkeys myadmin在使用干净/超时高速caching(甚至连续多次)运行时可以完美工作。 当我通过sshlogin并尝试直接运行后,没有返回任何login的用户,但我可以立即查询(新/新)用户。
解决方法
在entry_cache_user_timeout = 5添加到[domain/EXAMPLE.COM] /etc/sssd/sssd.conf启用每5秒login一次。 更快的login是不可能的。 较低的超时会延长login时间。
解
任何人都可以解决这个问题?
查看最新状态的错误报告 – 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添加到域configuration。 那么全局编录将仅用于跨域组成员身份。 有关详细信息,请参见man sssd-ad 。