git-http-backend 与 apache 身份验证不起作用

git-http-backend 与 apache 身份验证不起作用

我正在尝试通过 apache 使用 git-http-backend。我想要一个可公开读取的存储库,但某些经过身份验证的用户可能会推送。我有以下配置:

SetEnv GIT_PROJECT_ROOT /home/username/git
SetEnv GIT_HTTP_EXPORT_ALL
SetEnv REMOTE_USER $REDIRECT_REMOTE_USER
ScriptAlias /git/ /usr/lib/git-core/git-http-backend/

RewriteCond %{QUERY_STRING} service=git-receive-pack [OR]
RewriteCond %{REQUEST_URI} /git-receive-pack$
RewriteRule ^/git/ - [E=AUTHREQUIRED:yes]

<LocationMatch "^/git/">
        Order Deny,Allow
        Deny from env=AUTHREQUIRED

        AuthType Basic
        AuthName "Git Access"
        AuthUserFile /home/username/.htpasswd
        AuthGroupFile /home/username/.htgroup
        Require group committers
        Satisfy Any
</LocationMatch>

我的存储库可以匿名克隆,但推送期间没有身份验证,似乎任何人都可以推送到存储库。我尝试在存储库中启用此功能http.recievepackfalse但克隆失败并出现 403 错误。

我该如何解决这个问题?

相关内容