gitolitepipe理克隆问题

我正在克隆gitolite-admin存储库的问题。 我跟着这个http://sitaramc.github.com/gitolite/install.html#migr ,它完美。

我运行了ssh-keygen -t rsascp ~/.ssh/id_rsa.pub morten@ubuntu-server:/tmp/morten.pub

服务器上的authorized_keys如下所示:

 # gitolite start command="/home/morten/gitolite/src/gitolite-shell morten",no-port-forwarding,no-X11-forwarding,no-agent-forward$ # gitolite end 

哪一个AFAIK是好的。

当我在客户端上运行git clone morten@ubuntu-server:gitolite-admin时,我得到了

 fatal: 'gitolite-admin' does not appear to be a git repository fatal: The remote end hung up unexpectedly 

我不知道我错过了什么!

使用morten帐户是非常好的。

但是,考虑到您当前的~morten/.ssh/authorized_keys内容,您的安装很奇怪:

而不是/home/morten/gitolite/src/gitolite-shell morten |,你应该有/home/morten/gitolite/bin/gitolite-shell morten

这意味着: gitolite-shell应该在你的$PATH ,它应该在一个bin目录下,在执行完以后创建:

 "${github}/install" -to "${gtl}/bin" 

(请参阅“ 安装Gitolite ”的“实际安装”部分的选项3)

有:

  • github你克隆的路径https://github.com/sitaramc/gitolite
  • gtl你要安装gitolite的路径(在你的情况下,例如/home/morten/gitolite

然后,保存authorized_keys.gitolite.rc文件更容易,并重新执行初始化过程:

 gitolite setup -pk "${HOME}/.ssh/gitoliteadm.pub" 

(只要你创建了你的公钥和私钥,命名为' gitoliteadm ',用一个简单的方法:

 ssh-keygen -t rsa -f "${H}/.ssh/morten" -C "Gitolite Admin access (not interactive)" -q -P "" 

请注意,我保持“ssh”帐户名称( morten )不同于gitolite服务器帐户( gitoliteadm )。

你仍然可以使用git clone morten@ubuntu-server:gitolite-admin (因为所有的ssh文件都在~morten/.ssh ),但是你可以使用gitoliteadm的私钥/公钥来提示gitolite访问它的repo用名为“ gitoliteadm ”的gitolite“账户”。

这样,如果你改变你的gitolite服务器的物理用户帐户,“逻辑”帐户“ gitoliteadm ”(指一个角色 ,而不是一个人或资源)。