Gitolite与LDAP无法正常工作

时间:2013-08-01 09:38:27

标签: git ldap gitolite

我是gitolite的新手。我试图用gitolite做一个非常简单的测试。我已经设置了名为“test_repo”的存储库。请注意,我没有修改任何其他内容,除了我在下面说明的内容。我可以在gitweb看到这个回购。这是repo配置

repo test_repo
    RW+     =   @all

现在我要克隆这个回购。我有ldap访问服务器。根据我对@all的理解,它应该允许我这样做。

当我发出

git clone git@myserver:repositories/test_repo.git 
#I know this is wrong. But I just wanted to test as the above did not work

git clone git@myserver:test_repo.git

要求输入密码。我已按照本指南http://sharadchhetri.com/2013/05/31/how-to-create-own-git-server-with-gitolite-and-gitweb-in-ubuntu/进行操作,该指南未为git用户设置密码

当我发出

git clone myname@myserver:test_repo.git

我收到以下错误

fatal: 'test_repo.git' does not appear to be a git repository
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

我也厌倦了克隆默认仓库“test_repo.git”。但我得到了同样的错误。

我也累了这个

git clone myname@myserver:/home/git/repositories/testing.git

然后克隆工作正常。但是,当我git push -u origin master我正在获得一些修改过的文件时

error: insufficient permission for adding an object to repository database ./objects
fatal: failed to write object
error: unpack failed: unpack-objects abnormal exit
! [remote rejected] master -> master (n/a (unpacker error))

注意:我没有在配置文件中添加任何用户

感谢任何帮助。

2 个答案:

答案 0 :(得分:2)

 git clone myname@myserver:/home/git/repositories/testing.git
  • 完全绕过gitolite,不称为
  • 使用错误的帐户'myname',该帐户无权阅读git帐户文件夹。

应该做些什么:

 git clone git@myserver:test_repo.git
 or
 git clone git@myserver/test_repo.git

你不应该指定'repositories'文件夹(gitolite知道repo应该在哪里)

假设ssh -Tvvv git@myserver有效(即不要求密码) 首先使ssh工作,然后再次尝试git clone


正如我在评论中所说,LDAP ssh都是身份验证机制,因此您可以使用一个或另一个,而不是两者

如果ssh有效,但是克隆不起作用,那么你需要查看~git/.gitolite/logs

上的gitolite日志
  

我在日志中找不到任何有用的东西。此外,我做了tail -f的日志文件。当我尝试克隆时,它甚至没有更新。

这意味着问题出在ssh级别,而不是正确调用gitolite :这是~git/.ssh/authorized_keys,如果直接手动添加ssh密钥就会发生,而不是通过keys repo的gitolite-admin文件夹添加并将该repo推回到gitolite服务器(触发所述~git/.ssh/authorized_keys file的更新)。

  

我认为这可能就是原因。我不知道刚刚发生了什么。我甚至可以在管理服务器中克隆gitolite-admin(这在以前工作)   我将重新安装所有东西(因为我觉得我现在搞乱了配置文件)。

答案 1 :(得分:1)

试试

ssh git @ hostname-or-ip

这不应该问密码;它可以问密码。这也将发出您有权访问的存储库列表。

BTW - git clone命令中的用户名@ localhost严重错误