将 Apache 上的 Kerberos 身份验证与 Git 服务器集成

将 Apache 上的 Kerberos 身份验证与 Git 服务器集成

第一次在这里提问,希望我来对地方了。我也在这里搜索过类似的问题,但找不到任何类似的问题。

这是我的问题。我们目前有一个 git 服务器(使用 Gitorious),目前运行良好。有人要求我通过使用 Kerberos 进行身份验证为 Web 界面添加额外的安全层。因此,我继续配置 Apache,以便每当用户尝试访问 Web 界面时,使用 mod_auth_kerb 提示用户进行身份验证。就 Web 界面而言,一切都运行良好。但是,当尝试从命令行 git pull/push 任何内容时,它会失败。

以下是相关信息:

在我的 apache 配置中,我尝试了以下两种方法,都产生了相同的结果:

<Directory /home/git/active/>

        AuthName "Restricted Access Kerberos"
        AuthType Kerberos
        Krb5Keytab  /etc/httpd/conf/httpd.keytab
        KrbAuthRealms TEST.COMPANY.COM
        KrbMethodNegotiate On
        KrbMethodK5Passwd On
       require valid-user

</Directory>

<Location />

        AuthName "Restricted Access Kerberos"
        AuthType Kerberos
        Krb5Keytab  /etc/httpd/conf/httpd.keytab
        KrbAuthRealms TEST.COMPANY.COM
        KrbMethodNegotiate On
        KrbMethodK5Passwd On
        require valid-user

</Location>

以下是尝试从命令行拉取时出现的内容:

== Gitorious: ==========================================================

Access denied or wrong repository path

========================================================================

fatal: The remote end hung up unexpectedly

在 gitorious_auth.log 中看到:

I, [2014-01-17 15:02:47#8854]  INFO -- : Connection from "192.168.50.11 59109 22" (beauclaira): git-receive-pack 'sysadmin/puppet.git'
I, [2014-01-17 15:02:47#8854]  INFO -- : Access denied or bad repository path for "beauclaira": "git-receive-pack 'sysadmin/puppet.git'"

在 /var/log/secure 中:

Jan 17 15:06:32 gitorious50 sshd[9286]: Accepted publickey for git from 192.168.50.11 port 59146 ssh2
Jan 17 15:06:32 gitorious50 sshd[9286]: pam_unix(sshd:session): session opened for user git by (uid=0)
Jan 17 15:06:32 gitorious50 sshd[9288]: Received disconnect from 192.168.50.11: 11: disconnected by user
Jan 17 15:06:32 gitorious50 sshd[9286]: pam_unix(sshd:session): session closed for user git

我是不是漏掉了什么?我不太明白为什么在 Apache 中添加此身份验证会阻止用户推送/拉取。由此我猜测,即使从命令行拉取,它仍然会通过 Apache?我尝试做的事情可行吗?

感谢您的任何帮助,您可以提供!

相关内容