git clone git @ myserver:gitolite-admin失败

时间:2012-09-27 08:59:40

标签: git gitolite

我正在尝试运行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

任何人都可以给我一些有用的提示吗?我在这里和网上检查了答案,但没有找到任何帮助我的东西。

3 个答案:

答案 0 :(得分:14)

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

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

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

repo gitolite-admin
    RW+     =   OriginalAdmin Peaches

保存文件,然后从命令行运行安装程序,仍然是gitolite用户:

gitolite setup

如果您已正确设置为用户,则应该可以立即克隆。

有关添加用户的详情,请参阅the documentation

答案 1 :(得分:8)

只能使用用于gitolite服务器的git帐户命名的公钥来访问

gitolite-admin

您默认使用的是brian.pub,只允许您访问testing.git个回购。

您需要在本地工作站上定义$HOME/.ssh/config文件,以便记录ssh参数以使用正确的密钥。
请参阅“gitolite: can connect via ssh, can't clone”。

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

然后我定义了一个配置文件:〜/ .ssh / config in:

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.pub并从brian中删除旧的.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-admin repo的正确访问权限。

答案 2 :(得分:1)

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

git clone git@myserver:gitolite-admin.git