5

我在克隆 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

我不知道我错过了什么!

4

1 回答 1

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"

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

和:

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

然后,更容易保存您的authorized_keysand.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 使用名为“”的 gitolite“帐户”访问其存储库gitoliteadm

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

于 2012-05-24T13:27:54.527 回答