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

SSSD с адресом электронной почты Имена пользователей LDAP

У меня есть небольшая настройка сервера SFTP с использованием SSSD для аутентификации пользователей через LDAP с использованием ключей SSH. Это прекрасно работает для основных имен пользователей (например, «имя пользователя»), но меня попросили внести изменения, чтобы вместо этого пользователи входили в систему со своими адресами электронной почты, они могли быть из любого домена.

При первой попытке входа как «test@example.com»; SSSD прекрасно выбирает адрес электронной почты пользователя и помещает его в локальную базу данных вместе с открытым ключом, originalDn и всем остальным. Теперь моя проблема в том, что затем происходит сбой входа в систему, и пользователь не может войти в систему. В логах получаю ошибку:

AuthorizedKeysCommand /usr/bin/sss_ssh_authorizedkeys test@example.com failed, status 1

Если я попытаюсь запустить команду вручную на хосте, я получу:

Error looking up public keys

«Getent passwd test@example.com» возвращает то, что я ожидал увидеть.

Я предполагаю, что это как-то связано с локальным DN для пользователя, установленным на "test @ example.com @ ldap", а SSSD не может получить sshPublicKey из своей собственной БД? Но попытка войти в систему как «test @ example.com @ ldap» или использовать приведенные выше команды для проверки вручную также не удалась. Я не понимаю, как это пройти.

Вот моя конфигурация SSSD

[sssd]
config_file_version = 2
services = nss, pam, ssh, sudo
# Number of times services should attempt to reconnect in the event of a Data Provider crash
reconnection_retries = 3

domains = LDAP
full_name_format = %1$s

###########
### NSS ###
###########
[nss]
override_homedir = LDAP_HOMEDIR
homedir_substring = /

memcache_timeout = 600

###########
### PAM ###
###########
[pam]

###################
### LDAP DOMAIN ###
###################
[domain/LDAP]
id_provider = ldap
auth_provider = ldap
ldap_tls_reqcert = allow
debug_level = 10
ldap_uri = LDAP_URI
ldap_search_base = LDAP_BASE_ROOT
ldap_user_ssh_public_key = sshPublicKey
cache_credentials = true

ldap_id_use_start_tls = true

Любая помощь приветствуется.

Если кто-нибудь столкнется с этим в будущем, мне удалось решить эту проблему примерно через 10 минут после публикации, что заняло около 10 часов, чтобы попытаться понять это. Под конфигурацией вашего домена в sssd.conf добавьте:

re_expression = (?P<name>.+)