我使用this tutorial在我的服务器上安装了gitolite。这属于“非根”方法。
当我尝试将gitolite-admin克隆回我的客户端时,它失败了。我收到此错误消息:
git clone gitolite@server.com:gitolite-admin
Cloning into gitolite-admin...
fatal: The remote end hung up unexpectedly
此外:
git clone ssh://gitolite@server.com:gitolite-admin
Cloning into gitolite0admin...
Using username "git-upload-pack 'gitolite".
fatal: The remote end hung up unexpectedly
我还尝试将.git
附加到回购帐户名称的末尾,我还尝试添加repositories/gitolite-admin
(由上面链接的教程中的错误建议)以及这两者的组合没有人工作。我在谷歌上找不到关于“使用用户名”位的结果,这引起了我的兴趣。
我可以通过ssh连接到机器,它告诉我可以访问R和W gitolite-admin
。那么,SSH正在运作吗?
答案 0 :(得分:7)
检查ssh parts about gitolite:您可以通过server.com
连接到ssh
的事实仅表示:
server.com@~/.ssh/authorized_keys
command=
”选项,这意味着“无论传入用户要求做什么,都强行运行此命令”。)
您处于交互式会话中,能够执行您喜欢的任何命令。我对第三方教程完全不喜欢的是,它尝试使用同名的git用户和ssh非root用户
你应保持分开:
gitolite-admin
”,而不是git
,正好避免两种使用模式之间的混淆:
gitolite
(直接登录git
,此处没有ssh ):执行git命令所需的交互式会话(例如在服务器上克隆gitolite repo并执行server.com
)gitolite/src/gl-system-install
将使用您的ssh git@server.com
公钥和私钥,这些公钥和私钥将授权您克隆~/.ssh/id_rsa(.pub)
回购并推回该回购再次:
'gitolite'不是真正的帐户,只有授权在gitolite-admin
上执行命令的名称为“server.com
”(实际的“托管帐户”) “,如”托管git服务和回购“)
所有其他git用户也将git
上的git命令作为server.com
执行
该特定用户(git
)将通过forced-command mechanism链接到gitolite授权层,并在gitolite安装期间设置权限,以授予该“用户”克隆,修改和权限的权限推回gitolite
回购
(与你将添加的所有其他ssh git用户相比,这是唯一的特殊性:他们将无法访问特定的git repo,即gitolite-admin
一个)
尝试将两者命名为同名,只是在寻找麻烦。
我不喜欢使用公钥/私钥的默认命名约定,所以我更喜欢客户端使用目标用户的名称定义这些键:
gitolite-admin
然后我定义了一个配置文件:~/.ssh/gitolite.pub
~/.ssh/gitolite
,其中包含:
~/.ssh/config
(请注意此处的用户:始终host gitolite
user git
hostname server.com
identityfile ~/.ssh/gitolite
)
然后我可以克隆我的git
repo:
gitolite-amin
答案 1 :(得分:1)
对于后代,修复方法是确保GIT_SSH 不设置为TortoisePlink.exe。 Git无法使用它。