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 pass wd 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
Любая помощь приветствуется.
1 ответ
Если кто-то сталкивался с этим в будущем, мне удалось решить это примерно через 10 минут после публикации, что составило около 10 часов, чтобы попытаться выяснить это. Под конфигурацией вашего домена в sssd.conf добавьте:
re_expression = (?P<name>.+)