我有一个 openldap 主/从配置,按照Ubuntu 指南在 Ubuntu 12.04 上,运行 slapd 2.4.28-1.1ubuntu4.2。我已为 ssh 身份验证配置了 pam_ldap,只要主服务器启动,一切就都正常工作。
如果我将 /etc/ldap.conf 配置为仅指向从服务器,并且主服务器已启动,则身份验证可以正常工作。但是,一旦我关闭主服务器,身份验证就会失败,我无法登录。
我可以成功地在两个服务器上运行 ldap 搜索我的 uid,返回的数据是相同的...当主服务器关闭时,从服务器仍然可以正确显示数据。
主服务器和从服务器上的 contextCSN 是相同的,并且我已通过更改主服务器上的属性确认复制正在正确进行,大约 30 秒后,从服务器上的 contextCSN 会更新,并且搜索该属性会显示它已更新。
仅指定从属的 /etc/ldap.conf 内容:
base dc=mydomain
ldap_version 3
pam_password md5
uri ldap://slave01
auth.log、syslog 或 slapd.log 中都没有任何内容可以说明为什么会出现这种情况。
有任何想法吗?
答案1
回答我自己的问题...症状是,当主服务器关闭时,尝试从一台主机(客户端) ssh 到另一台主机(服务器)时,我会看到以下内容:
$ ssh server
You don't exist, go away!
我错误地认为这是来自服务器的,但实际上它来自客户端的 ssh。根本原因是我在服务器上的 /etc/ldap.conf 中配置了主服务器和从服务器,但在客户端的 /etc/ldap.conf 中只配置了主服务器。一旦我关闭主服务器,客户端就无法解析我自己的 uid,因此告诉我我不存在。