2012-05-24 151 views
4

我疯了克隆gitolite管理存储库的问题。 我跟着这个http://sitaramc.github.com/gitolite/install.html#migr它完美。gitolite管理克隆问题

我跑ssh-keygen -t rsascp ~/.ssh/id_rsa.pub [email protected]:/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 [email protected]:gitolite-admin,我得到

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

我不知道我错过了!

回答

5

使用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" 

(见“”实际安装“ 部分的选项3 10“)

有:

  • 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 [email protected]:gitolite-admin克隆(因为所有的SSH文件都在~morten/.ssh),但你会用gitoliteadm的公/私钥做到这一点,促使gitolite与gitolite“帐户”命名即可访问其回购“gitoliteadm” 。这样,如果您更改gitolite服务器的物理用户帐户,“逻辑”帐户“gitoliteadm”(指的是角色,而不是人员或资源)。

+0

非常感谢!按照这些步骤,它似乎现在工作:) 要从头开始,我做了一个完整的ubuntu服务器重新安装(它几乎是全新安装),并将用户名更改为“ubuntu”,以避免任何混淆 - 现在当我这样做: git克隆ubuntu @ ubuntu服务器:gitolite管理 它使我的客户端克隆 - 这样就告诉我它正在工作,因为它应该! 再次感谢! –

+0

@Morten:不客气。很高兴你做到了。 – VonC

+0

我有一个问题我希望你能帮助: 当我做:混帐推-u起源主 我得到:FATAL:W任何的Ubuntu/CRM gitoliteadm通过fallthru –