我的公司正在考虑使用git和gitolite,但不想使用SSH密钥并且喜欢使用LDAP。可以这样做吗?
我从来没有见过这样做..我在这个设置中使用的常用SSH密钥
答案 0 :(得分:4)
是的,你可以毫无问题地做到这一点。
您只需要Apache to do the authentication part(因为gitolite只是authorization layer),并且调用gitolite-shell
代替git-http-backend
,而REMOTE_USER
设置为Apache(和used by gitolite-shell
)。
请参阅“Git with Ldap on Ubuntu with Apache”中的详细示例。
httpd.conf
的主要部分是:
SetEnv GIT_PROJECT_ROOT @H@/repositories
SetEnv GIT_HTTP_EXPORT_ALL
SetEnv GITOLITE_HTTP_HOME @H@
ScriptAlias /hgit/ @H@/sbin/gitolite-shell/
SetEnv GIT_HTTP_BACKEND "@H@/usr/local/apps/git/libexec/git-core/git-http-backend"
<FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
<Location /hgit>
SSLOptions +StdEnvVars
Options ExecCGI +FollowSymLinks +SymLinksIfOwnerMatch
#AllowOverride All
order allow,deny
Allow from all
AuthName "LDAP authentication for Smart HTTP Git repositories"
AuthType Basic
AuthBasicProvider myldap companyldap
AuthzLDAPAuthoritative Off
Require valid-user
AddHandler cgi-script cgi
</Location>
(@H@
只是一个模板值,将由您的路径替换)