Ldap
帶有電子郵件地址 LDAP 使用者名的 SSSD
我有一個小型 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”返回我期望看到的內容。
我想這與將使用者設置為“test@example.com@ldap”的本地 DN 有關,並且 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>.+)