3

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

repo test_repo
    RW+     =   @all

现在我想克隆这个 repo。我有对服务器的 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))

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

任何帮助表示赞赏。

4

2 回答 2

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.


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

如果 ssh 有效,但克隆无效,那么您需要查看 gitolite 日志~git/.gitolite/logs

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

这意味着问题出在 ssh 级别,没有正确调用 gitolite : 那是在 中~git/.ssh/authorized_keys如果您直接在其中手动添加 ssh 密钥,而不是通过 repo 的keys文件夹添加并将该gitolite-adminrepo 推回 gitolite 服务器,则会发生这种情况(这触发了 said 的更新~git/.ssh/authorized_keys file)。

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

于 2013-08-01T10:24:59.177 回答
1

试试看嘛

ssh git@hostname-or-ip

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

顺便说一句 - git clone 命令中的用户名@localhost 严重错误

于 2013-08-01T10:00:28.430 回答