web-dev-qa-db-ja.com

authorized_keysでのsssdキャッシュの問題

CentOS7.4.1708とすべてのパッチが適用されたサーバーを実行しています。 sssdはバージョン1.15.2です。

ActiveDirectoryに保存されているSSH公開鍵を使用してサインインできるsssdセットアップが機能しています。

構成

インスタンスは正常に参加し、これは私の/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分)中に1回だけログインできます。それ以外の場合、ユーザーはアクセスを拒否されます。 https://Pastebin.com/Jqc52MWH のログを参照してください。 debug_level = 9のログについては、 https://Pastebin.com/0uQ8MCuS を参照してください。

sss_ssh_authorizedkeys myadminの実行は、クリーン/タイムアウトキャッシュを使用して実行すると(連続して複数回でも)完全に機能します。 ssh経由でログインし、その直後に実行しようとすると、ログインしたユーザーには何も返されませんが、(新規/新規)ユーザーにすぐにクエリを実行できます。

回避策

entry_cache_user_timeout = 5[domain/EXAMPLE.COM]/etc/sssd/sssd.confを追加すると、5秒ごとにログインできるようになります。より高速なログインはできません。タイムアウトを短くすると、ログイン時間が長くなります。

ソリューション

この問題の解決策はありますか?

1
Jonathan

最新のステータスについては、バグレポートを参照してください 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/ を参照してください。手順については。属性は次のようになります。 schema settings

回避策2

または、ドメイン構成にad_enable_gc = falseを追加することもできます。その場合、グローバルカタログはクロスドメイングループメンバーシップにのみ使用されます。詳細については、man sssd-adを参照してください。

2
Jonathan