Назад | Перейти на главную страницу

Проблемы с кешем sssd с authorized_keys

Я использую сервер с CentOS 7.4.1708 и всеми исправлениями. sssd - это версия 1.15.2.

У меня есть рабочая настройка sssd, которая позволяет мне входить в систему с использованием открытых ключей SSH, хранящихся в Active Directory.

Конфигурация

Экземпляр успешно присоединен, и это мой /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] в /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 для подробностей.