所以我成立了gitolite 简单。 但是我有一个问题。 SSHurl遵循git@host:repo的格式。 我已经习惯了Bitbucket / Github ,这些url的格式是git@host:user/repo 。 有没有办法使用gitolite来获得后一种格式?
另一个问题。 我有我的~/.ssh/config文件设置与以下条目:
Host <host> User <user> IdentityFile <path/to/public/key>
我没有任何指定git作为用户的configuration,但我能克隆git@host:repo没有问题。 显然,我的SSH客户端正在使用我的公共密钥访问服务器,这就是为什么gitolite让我克隆回购,但我的SSH客户端如何知道使用我的公共密钥,只configuration为<user>用户而不是git用户?
见Gitolite和SSH
限制用户使用特定命令对gitolite非常重要。
如果您阅读man sshd并查找authorized_keys文件格式,则会看到许多选项可添加到公用密钥行中,从而以各种方式限制传入用户。 特别要注意的是command=option,意思是“不pipe传入用户要求做什么,而是强行运行这个命令”。另外请注意,当authorized_keys文件中有许多公钥(即行)时,每行可以有不同的选项集和
command=值。没有这个
command=选项,ssh守护进程只会给你一个shell,这不是我们想要的gitolite键(虽然我们可能有其他的键用来获得一个shell)。这是什么使gitolite工作的骨干; 请确保你明白这一点 。
这些command=正在使用您的公钥的名称作为用户名。
所以你所有的SSH查询都完成了:
~git/.ssh/authorized_keys中的command =指令的参数中注册。 至于user/repos ,与Gitolite最接近的是在回购和回购模式 。
repo CREATOR/a[0-9][0-9]