我在尝试使用 PGP 密钥填充 LDAP 时遇到了困难。我已经为 PGP 密钥服务器结构设置了 LDAP(OpenLDAP,如果重要的话)正如这里所解释的到目前为止效果很好。
现在我想使用 gpg 命令将一些密钥发送到 LDAP,如下所示:
gpg --keyserver ldap://ldap.example.com --send-keys 1234CAFE
但这失败了
Strong(er) LDAP authentication required
LDAP(使用 loglevel debug 运行)输出
fd=12 ACCEPT from IP=n.n.n.n:57480 (IP=0.0.0.0:389)
op=0 SRCH base="" scope=0 deref=0 filter="(objectClass=*)"
op=0 SRCH attr=namingContexts
op=0 SEARCH RESULT tag=101 err=0 nentries=1 text=
op=1 SRCH base="cn=pgpServerInfo,dc=example,dc=com" scope=0 deref=0 filter="(objectClass=*)"
op=1 SRCH attr=pgpBaseKeySpaceDN pgpVersion pgpSoftware
op=1 SEARCH RESULT tag=101 err=0 nentries=1 text=
op=2 MOD dn="pgpCertID=9BB4C6C315EA172A,ou=GnuPG Keys,dc=example,dc=com"
op=2 MOD attr=pgpDisabled pgpKeyID pgpKeyType pgpUserID pgpKeyCreateTime pgpSignerID pgpRevoked pgpSubKeyID pgpKeySize pgpKeyExpireTime pgpCertID objectClass pgpKey
op=2 RESULT tag=103 err=8 text=modifications require authentication
op=3 UNBIND
fd=12 closed
从消息“修改需要身份验证”中,我了解到无法发送密钥,因为 gpg 未针对 LDAP 服务器进行身份验证,因此尝试将密钥添加为匿名用户,但遭到拒绝。
我还没有找到如何让 gpg 进行身份验证,因此我尝试通过添加以下 acl 来允许匿名写入访问:
olcAccess: {0}to dn.subtree="ou=GnuPG Keys,dc=example,dc=com"
by * write
但这似乎没有什么区别。这不应该允许匿名用户在下面创建对象吗GnuP 密钥?
我究竟做错了什么?
答案1
by * write
不足以允许匿名更新。必须通过添加明确允许这一点
# Allow any connection to update the PGP keys
# (including removing them!)
# This is only needed if the anonymous
# updates from localhost are desired.
dn: cn=config
add: olcAllows
olcAllows: update_anon