我在克隆 gitolite-admin 存储库时遇到了问题。 我已经关注了这个http://sitaramc.github.com/gitolite/install.html#migr一切顺利。
我运行了 ssh-keygen -t rsa
和 scp ~/.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"
(前提是您创建了公钥和私钥,并将其命名为“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“帐户”访问其存储库。
这样,如果您更改 gitolite 服务器的物理用户帐户,“逻辑”帐户“gitoliteadm
”(指的是角色,而不是人或资源)。
关于gitolite-admin 克隆问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10736964/