我的公司正在考虑使用 git 和 gitolite,但不想使用 SSH key 并且喜欢使用 LDAP 工作。这可以做到吗??
我从来没有见过这样做的..我在每个地方都有这个设置,总是使用 SSH key
最佳答案
是的,你可以毫无问题地做到这一点。
您只需要您的 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@
只是一个模板值,需要替换成你的路径)
关于git - GitoLite 和 Git 可以使用 LDAP 而不是 SSH key 吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19383836/