Linux 通过HTTP协议进行身份验证的Git克隆
我有一个centos 7服务器,它通过智能http共享git repo,当我使用“git push”时,身份验证工作,但当我使用“git clone”时,身份验证不工作。我希望Git和Apache询问我克隆repo的用户和密码 /var/www/git->是我的回购目录 /var/www/html->是网站目录 我的site.conf是:Linux 通过HTTP协议进行身份验证的Git克隆,linux,git,apache,centos,git-clone,Linux,Git,Apache,Centos,Git Clone,我有一个centos 7服务器,它通过智能http共享git repo,当我使用“git push”时,身份验证工作,但当我使用“git clone”时,身份验证不工作。我希望Git和Apache询问我克隆repo的用户和密码 /var/www/git->是我的回购目录 /var/www/html->是网站目录 我的site.conf是: <VirtualHost *:80> ServerAdmin webmaster@localhost ServerName miserver.co
<VirtualHost *:80>
ServerAdmin webmaster@localhost
ServerName miserver.com
DocumentRoot /var/www/html
SetEnv GIT_PROJECT_ROOT /var/www/git
SetEnv GIT_HTTP_EXPORT_ALL
ScriptAlias /git /usr/libexec/git-core/git-http-backend/
<Directory /var/www/html/gitweb>
Options +ExecCGI +FollowSymLinks +SymLinksIfOwnerMatch
AllowOverride All
order allow,deny
Allow from all
AddHandler cgi-script cgi
DirectoryIndex gitweb.cgi
</Directory>
<Directory /var/www/git>
DAV On
Options ExecCGI FollowSymLinks Indexes
AuthType Basic
AuthName "git repository"
AuthUserFile /var/www/git/.htpasswd
</Directory>
<Files "git-http-backend">
AuthType Basic
AuthName "Git Access"
AuthUserFile /var/www/git/.htpasswd
Require expr !(%{QUERY_STRING} -strmatch '*service=git-receive-pack*' || %{REQUEST_URI} =~ m#/git-receive-pack$#)
Require valid-user
</Files>
ErrorLog /var/www/html/error.log
CustomLog /var/www/html/access.log combined
服务器管理员webmaster@localhost
服务器名miserver.com
DocumentRoot/var/www/html
SetEnv GIT_PROJECT_ROOT/var/www/GIT
SetEnv GIT_HTTP_EXPORT_ALL
ScriptAlias/git/usr/libexec/git-core/git-http后端/
选项+执行CGI+后续符号链接+符号链接所有者匹配
允许超越所有
命令允许,拒绝
通融
AddHandler cgi脚本cgi
目录索引gitweb.cgi
达文
选项ExecCGI FollowSymLinks索引
AuthType Basic
AuthName“git存储库”
AuthUserFile/var/www/git/.htpasswd
AuthType Basic
AuthName“Git访问”
AuthUserFile/var/www/git/.htpasswd
需要expr!({QUERY_STRING}-stratch'*service=git receive pack*'||%{REQUEST_URI}=~m#/git receive pack$#)
需要有效用户
ErrorLog/var/www/html/error.log
CustomLog/var/www/html/access.log
您的配置使用的
Require expr
与git receive pack
匹配。这就是推送到服务器时使用的服务。为了使服务器需要对克隆和回迁进行身份验证,您还需要在git upload pack上匹配
解决此问题的最简单方法可能是删除Require expr
行,因为听起来您希望服务器始终应用身份验证,而不管您执行的任务是什么。删除Require expr
行将删除非推送操作的豁免