sssd 的 authorized_keys 缓存问题

sssd 的 authorized_keys 缓存问题

我正在运行一台 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 秒登录一次。更快的登录是不可能的。较低的超时会延长登录时间。

解决方案

有人能解决这个问题吗?

答案1

请参阅错误报告以了解最新状态 -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以了解详细信息。

相关内容