Gitosis:读取访问被拒绝

Gitosis:读取访问被拒绝

我正在尝试让 Gitosis 在我的 Ubuntu 服务器上运行(从 Win7 客户端)。它已安装,我可以通过 SSH 连接到它,但是,如果我尝试推送新项目,则会出现以下错误:

错误:gitosis.serve.main:存储库读取访问被拒绝

我从那时起尝试清除我的 /home/git/ 文件夹并重新开始 - 但现在即使我尝试获取 gitosis-admin 项目时仍然会出现同样的错误。

知道是什么原因造成的吗?

[编辑] 将调试标志添加到配置文件后,我得到以下结果:

C:\sandbox>git push origin master
DEBUG:gitosis.serve.main:Got command "git-receive-pack '/home/git/repositories/sandbox'"
DEBUG:gitosis.access.haveAccess:Access check for 'Dan@DAN-PC' as 'writable' on 'home/git/repositories/sandbox'...
DEBUG:gitosis.group.getMembership:found 'Dan@DAN-PC' in 'gitosis-admin'
DEBUG:gitosis.access.haveAccess:Access check for 'Dan@DAN-PC' as 'writeable' on 'home/git/repositories/sandbox'...
DEBUG:gitosis.group.getMembership:found 'Dan@DAN-PC' in 'gitosis-admin'
DEBUG:gitosis.access.haveAccess:Access check for 'Dan@DAN-PC' as 'readonly' on 'home/git/repositories/sandbox'...
DEBUG:gitosis.group.getMembership:found 'Dan@DAN-PC' in 'gitosis-admin'
ERROR:gitosis.serve.main:Repository read access denied
fatal: The remote end hung up unexpectedly

[编辑2]

为了添加额外的信息 - 我刚刚尝试了 Gitolite 并得到了类似的错误:

Cloning into gitolite-admin...
R access for home/git/repositories/gitolite-admin DENIED to dan
(Or there may be no repository at the given path. Did you spell it correctly?)
fatal: The remote end hung up unexpectedly

这是使用相同的“git”用户和密钥。我尝试更改目录权限,但没有帮助。

答案1

知道是什么原因造成的吗?

这通常表示 (a) 你的配置有误gitosis.conf,或 (b) 你的 Gitosis 中缺少公钥keydir。要进一步诊断问题:

  • 查看管理存储库。由于您可以登录服务器,因此您可以运行:

    git checkout /path/to/gitosis/repos/gitosis-admin.git
    
  • 这将为你提供一个名为 的目录gitosis-admin。此目录中是你的gitosis.conf文件。

  • 将以下内容添加到文件顶部:

    [gitosis]
    loglevel = DEBUG
    
  • 提交您的更改并推回到原始存储库:

    git commit -m 'enabled debug logging' -a
    git push origin master
    

现在,当您推送到 gitosis 安装时,您将获得详细的调试日志,这应该有助于诊断问题。如果这不能指出问题所在,请在此处发布调试输出,我们将帮助您解决问题。

答案2

我强烈建议你放弃 gitosis 并切换到吉托莱特。Gitosis 已被弃用,似乎不再维护,而 gitolite 则得到非常积极的维护和支持。Gitolite 可以完成 gitosis 能做的一切,但做得更好,包括详细的错误,而不是 gitosis 中出现的模糊错误。

答案3

原来是因为我使用了与我的主要 SSH shell 登录相同的用户名 (dan)。所以我将我的 git admin 更改为使用相同的 SSH 密钥对,现在它似乎工作正常。现在也使用 Arrowmaster 推荐的 Gitolite。

相关内容