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秒ごとにログインできるようになります。より高速なログインはできません。タイムアウトを短くすると、ログイン時間が長くなります。
ソリューション
この問題の解決策はありますか?
最新のステータスについては、バグレポートを参照してください 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
を参照してください。