我最近设置gitolite,在那里用户通过ssh访问git的用户通过“gitolite”用户。
现在我想将它集成到LDAP中。 每个用户在LDAP中都有pubkey,如果他有“git”objectClass,他将能够通过ssh访问“gitolite”用户。
我知道可以将公钥存储在LDAP中,我不确定是否可以在基于objectClass的“gitosis”帐户中进行身份validation。
编辑:澄清,用objectClass git,用户“foobar”将能够通过sshlogin为“gitolite”
gitolite的作者增加了一些function来帮助支持外部密钥库和组员信息。 在CHANGELOG中searchLDAP。
要使用外部密钥存储,您的sshd需要支持通常的.ssh/authorized_keys文件( 这是在gitolite用户login时告诉sshd运行gl-auth-command的文件 )。
gitolite-admin存储库中的keydir ): $GL_NO_SETUP_AUTHKEYS = 0; 在你的.gitolite.rc 。 keydir相同的名称)。 authorized_keys文件的一部分。 请参阅为作者自己的描述引入gl-setup-authkeys的提交消息 。
使用外部定义的用户组有点麻烦,因为它通常涉及在sshd和gl-auth-command之间插入另一个程序(组成员身份作为gl-auth-command的额外parameter passing)。 请参阅“用户组和LDAP /类似的工具” 。
如果你想尝试一些东西,可以让.ssh / authorized_keys2成为一个命名pipe道,然后编写一个查询LDAP的脚本/程序,执行适当的过滤,然后吐出authorized_keys键的内容。 我build议authorized_keys2,因为您可能已经使用authorized_keys。
你必须小心脚本(注意阻止写入,知道什么时候做一个新的查询等),但是如果你做得对,每次都会给你正确的答案。