8

我正在尝试运行一个 git 服务器存储库。我确实安装了 gitolite

通过 ssh 运行 git info 时,服务器会回答

ssh git@myserver info

hello Brian, this is git@hepide01pep1 running gitolite3  on git 1.6.3.2
R W   testing

尝试克隆 gitolite-admin 存储库时出现以下错误

git clone git@myserver:gitolite-admin

Cloning into 'gitolite-admin'...
FATAL: R any gitolite-admin Brian DENIED by fallthru
(or you mis-spelled the reponame)
fatal: The remote end hung up unexpectedly

这种语法也会发生同样的事情

git clone ssh://git@myserver/gitolite-admin 
Cloning into 'gitolite-admin'...
FATAL: R any gitolite-admin Brian DENIED by fallthru
(or you mis-spelled the reponame)
fatal: The remote end hung up unexpectedly

谁能给我一些有用的提示?我在这里和网上检查了答案,但没有找到任何进一步帮助我的东西。

4

3 回答 3

15

如果您只是设置 gitolite,则接受的答案是一个很好的答案,但如果您是现有安装的新用户,除非您被添加为,否则您将收到与问题中相同的错误管理员。

如果您对 gitolite 存在的服务器具有 shell 访问权限,请登录并切换到 gitolite 用户的用户 - 通常称为git.

登录 gitolite 用户后,转到 conf 文件并在 gitolite-admin 存储库中授予自己 RW+ 权限。Gitolite conf 通常在/home/git/.gitolite/conf/gitolite.conf(假设用户名是git)。对于名为 的 gitolite 用户Peaches,授予权限:

repo gitolite-admin
    RW+     =   OriginalAdmin Peaches

保存文件,并从命令行运行 setup,仍然是 gitolite 用户:

gitolite setup

如果您已正确设置为用户,您现在应该可以克隆了。

有关添加用户的更多信息,请参阅文档

于 2012-11-29T20:56:30.393 回答
8

gitolite-admin只能使用以用于 gitolite 服务器的 git 帐户命名的公钥访问。

您默认使用 your brian.pub,它只允许您访问testing.gitrepo。

您需要$HOME/.ssh/config在本地工作站上定义一个文件,以便记录 ssh 参数以使用正确的密钥。
请参阅“ gitolite:可以通过 ssh 连接,无法克隆”。

~/.ssh/gitolite.pub
~/.ssh/gitolite

然后我定义了一个配置文件: ~/.ssh/config 在里面:

host gitolite
     user git # replace it by the actual git user for the gitolite server
     hostname server.com
     identityfile ~/.ssh/gitolite

克隆将起作用:

git clone gitolite:gitolite-admin

OP macbert确认:

我确实将密钥重命名为git.pub,运行gitolite setup -pk git.pubbrian.gitolite/keydir.
之后我得到git clone git@myserver:gitolite-admin

Cloning into 'gitolite-admin'... 
remote: Counting objects: 15, done. 
remote: Compressing objects: 100% (12/12), done. 
remote: Total 15 (delta 0), reused 0 (delta 0) 
Receiving objects: 100% (15/15), done.

因此,使用正确的默认密钥,ssh git@myserver info这一次应该在“hello”消息中显示对gitolite-adminrepo 的正确访问权限。

于 2012-09-27T09:33:18.047 回答
1

通常裸 git repos 使用.git名称。请尝试做

git clone git@myserver:gitolite-admin.git

于 2012-09-27T09:28:28.770 回答