我的公司正在考虑使用 git 和 gitolite,但不想使用 SSH 密钥并且像使用 LDAP 一样工作。可以这样做吗?
我从未见过这样做过..我在每个地方都有这个设置,总是使用 SSH 密钥
是的,您可以毫无问题地做到这一点。
您只需要您的Apache 进行身份验证部分(因为 gitolite 只是一个授权层),然后调用gitolite-shell
而不是git-http-backend
,REMOTE_USER
由 Apache 设置(并由 Apache使用gitolite-shell
)。
请参阅“带有 Apache 的 Ubuntu 上的 Git 和 Ldap ”中的详细示例。
存在的主要部分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@
只是一个模板值,由您的路径替换)