Назад | Перейти на главную страницу

git-http-backend с аутентификацией apache не работает

Я пытаюсь использовать git-http-backend поверх apache. Мне нужен общедоступный репозиторий, но какой-нибудь аутентифицированный пользователь может нажать. У меня такой конфиг:

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>

Мой репозиторий можно клонировать анонимно, но во время push нет аутентификации, любой, похоже, может нажать на репо. Я пробовал включить http.recievepack к false в репо, но тогда даже клонирование не удается с ошибкой 403.

Как решить проблему?