2012-09-27 92 views
7

我想让git服务器库运行。 我没有安装gitolitegit clone git @ myserver:gitolite-admin失败

运行通过ssh git的信息的服务器回答

ssh [email protected] info 

hello Brian, this is [email protected] running gitolite3 on git 1.6.3.2 
R W testing 

当试图克隆gitolite管理员仓库,我得到以下错误

git clone [email protected]: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://[email protected]/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 

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

回答

8

gitolite-admin是只用于gitolite服务器git的帐户命名的公共密钥访问。

您正在使用默认情况下您的brian.pub,它只能让您访问testing.git回购。

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

~/.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.pub并移除了.gitolite/keydirbrian关键。
后,我得到了git clone [email protected]: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 [email protected] info应该这个时候显示gitolite-admin回购的“你好”的消息在正确的访问。

+0

啊良好的提示 - 这工程 git克隆git @ myserver:testing.git 克隆到'测试'... 警告:您似乎克隆了一个空的存储库。 我怎么能改变这个? 本指南它看起来像我的钥匙可以被命名为任何东西: $的mkdir斌 $ gitolite /安装-ln $ gitolite设置-pk sena.pub 初始化空Git仓库在/ home/gitolite /库/ gitolite -admin.git/ 在/home/gitolite/repositories/testing.git/中初始化空的Git存储库警告:/home/gitolite/.ssh/authorized_keys失踪;创建一个新的 下一步将是克隆和啧啧。说它可以工作 – macbert

+0

@macbert是正确的:但是除非你通过'config'文件指定你想使用正确的公钥,否则你将无法克隆'gitolite-admin'。而钥匙的名字很重要。 – VonC

+0

好吧,太棒了!我没有到git.pub跑gitolite设置-pk git.pub并移除了.gitolite老布赖恩键/ keydir 后,我得到了 混帐混帐克隆MYSERVER @重命名键:gitolite管理员 克隆成“ gitolite-admin'... remote:计数对象:15,完成。 远程:压缩对象:100%(12/12),完成。 远程:共15(delta 0),重用0(delta 0) 接收对象:100%(15/15),完成。 声音很好 - 谢谢@VonC – macbert

0

通常裸git回购正在使用.git名称。请试着做

git clone [email protected]:gitolite-admin.git

+0

相同的输出:-7 GIT中克隆的git @ MYSERVER:gitolite-admin.git 克隆到 'gitolite管理员' ... 致命:R t任何gitolite管理员布赖恩拒绝fallthru (或者你拼错了reponame) 致命的:远程端意外挂断 – macbert

+0

@macbert正常:这与回购的名称无关,以及与gitolite如何控制访问到那个特定的''gitolite-admin''回购。 – VonC

+5

Gitolite非常聪明,可以照顾'.git';你根本不需要它。 – poke

13

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

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

一旦登录到gitolite用户,进入conf文件并给你自己的RW +权利在gitolite管理员回购。 Gitolite conf通常在/home/git/.gitolite/conf/gitolite.conf(假设用户名是git)。对于命名Peaches一个gitolite用户,授予的权限正是如此:

repo gitolite-admin 
    RW+  = OriginalAdmin Peaches 

保存文件,并运行安装程序的命令行,仍作为gitolite用户:

gitolite setup 

如果你已经安装作为一个正确的用户,你应该能够克隆。

更多关于添加用户,看the documentation

+1

请注意,如果你在Ubuntu上,并且你已经通过apt-get安装了gitolite,gitolite setup是'gl-setup' –

+0

谢谢,这对我非常有帮助!特别是gitolite设置部分! – plasmasolutions