gitolite-admin克隆问题

Mor*_*agh 5 git ubuntu clone gitolite

我很难解决克隆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
Run Code Online (Sandbox Code Playgroud)

哪个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
Run Code Online (Sandbox Code Playgroud)

我不知道我错过了什么!

Von*_*onC 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"
Run Code Online (Sandbox Code Playgroud)

(参见" 安装Gitolite " 的"实际安装"部分的选项3 )

有:

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

于是,更容易保存authorized_keys.gitolite.rc文件,并重新做初始化过程:

gitolite setup -pk "${HOME}/.ssh/gitoliteadm.pub"
Run Code Online (Sandbox Code Playgroud)

(如果您创建了公钥和私钥,请将其命名为' gitoliteadm',简单地说:

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

)

请注意,我保留'ssh'帐户名(morten)与gitolite服务器帐户(gitoliteadm)的目的不同.

你仍然会克隆git clone morten@ubuntu-server:gitolite-admin(因为所有的ssh文件都在~morten/.ssh),但你会使用私钥/公钥gitoliteadm,这会促使gitolite用一个名为" gitoliteadm" 的gitolite"帐户"来访问它的repo .

这样,如果您更改了gitolite服务器的物理用户帐户,则为"逻辑"帐户gitoliteadm"(指代角色,而不是个人或资源).