带有电子邮件地址的 SSSD LDAP 用户名

带有电子邮件地址的 SSSD LDAP 用户名

我有一个小型 SFTP 服务器,使用 SSSD 通过 LDAP 使用 SSH 密钥对用户进行身份验证。这对于基本用户名(即“ausername”)完全没问题,但我被要求进行更改,以便用户使用他们的电子邮件地址登录,这些地址可以来自任何域。

首次登录尝试为“[电子邮件保护]“;SSSD 可以顺利获取用户的电子邮件地址,并将其与公钥、originalDn 和其他所有内容一起放入本地数据库中。现在我的问题是登录失败,用户无法登录。在日志中我收到错误:

AuthorizedKeysCommand /usr/bin/sss_ssh_authorizedkeys [email protected] failed, status 1

如果我尝试在主机上手动运行该命令,我会得到:

Error looking up public keys

“getent passwd[电子邮件保护]“返回了我期望看到的内容。

我猜想这与用户的本地 DN 设置为“[电子邮件保护]@ldap” 并且 SSSD 无法从其自己的数据库中获取 sshPublicKey?但尝试以“[电子邮件保护]@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>.+)

相关内容