身份验证后 Git 推送失败

身份验证后 Git 推送失败

我正在我们的生产 SUSE 12 SP3 上部署 git 服务器,以便通过 Visual Studio 访问。首先,我使用 git 制作了一个可以正常工作的测试虚拟机,但在我重新创建了生产服务器上的所有工作后,git push在用户身份验证后失败,并出现以下错误:

error: Cannot access URL http://git.sevlinux.local/git/test.git/, return code 22
fatal: git-http-push failed
error: failed to push some refs to 'http://git.sevlinux.local/git/test.git'

这是我的 Apache 配置:

*:80     git.sevlinux.local (/etc/apache2/vhosts.d/git.sevlinux.powertech.conf:1)
*:443    cryptedweb.sevlinux.local (/etc/apache2/vhosts.d/technet.sevlinux.powertech.conf:1)
ServerRoot: "/srv/www"
Main DocumentRoot: "/srv/www/htdocs"
Main ErrorLog: "/var/log/apache2/error_log"
Mutex ssl-stapling: using_defaults
Mutex ssl-cache: using_defaults
Mutex default: dir="/run/" mechanism=default
Mutex mpm-accept: using_defaults
Mutex rewrite-map: using_defaults
Mutex ssl-stapling-refresh: using_defaults
PidFile: "/var/run/httpd.pid"
Define: SYSCONFIG
Define: SSL
Define: DUMP_VHOSTS
Define: DUMP_RUN_CFG
User: name="wwwrun" id=30
Group: name="www" id=8

以及虚拟主机配置:

<VirtualHost *:80>                                            
    DocumentRoot /srv/git                                        
    ServerName git.sevlinux.local                            
    ServerAdmin nidrax@local

    <Directory /srv/git>                                         
        AllowOverride All                                           
        Require all granted                                         
        Options +Indexes +FollowSymLinks +MultiViews                
    </Directory>   

    <Directory /usr/lib/git>                                     
        AllowOverride All                                           
        Options +ExecCGI -Includes -MultiViews +SymLinksIfOwnerMatch
        Require all granted                                         
    </Directory>     

    <LocationMatch "/*.git/">                                    
        AuthType Basic                                              
        AuthName "Git Access for GIT LOCAL"                         
        AuthUserFile /etc/apache2/conf.d/git.passwd                 
        Require valid-user                                          
    </LocationMatch>  

    Alias /git /srv/git                                          
    ScriptAlias /git/ /usr/lib/git/git-http-backend/             
    SetEnv GIT_PROJECT_ROOT /srv/git                             
    SetEnv GIT_HTTP_EXPORT_ALL                                   
</VirtualHost> 

存储库配置:

[core]
    repositoryformatversion = 0
    filemode = true
    bare = true
    sharedRepository = true

[remote "origin"]
    url = http://git.sevlinux.local/git/test.git

/etc/apache2/conf.d/git.passwd文件已创建并包含用户 ayth 数据。 /srv/git目录归 wwwrun:www 所有,且具有 755 权限(与我的其他机器一样)。

在提供正确的用户名和密码后,我可以成功克隆和获取 repo 并通过 Web 浏览器访问它,但我无法将其推送到其中。

相关内容