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

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

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

  • 然后,更容易保存authorized_keys.gitolite.rc文件,并重新执行初始化过程:
    gitolite setup -pk "${HOME}/.ssh/gitoliteadm.pub"
    

    (前提是您创建了公用 key 和专用 key ,并将其命名为“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使用名为“gitoliteadm”的gitolite“account”访问其 repo 协议(protocol)。

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

    关于gitolite-admin克隆问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10736964/

    10-14 01:52