Gitolite SSH URL 格式

Gitolite SSH URL 格式

所以我得到了吉托莱特设置。很简单。但我有一个问题。SSH URL 遵循 的格式git@host:repo。我习惯于Bitbucket/Github其中 URL 遵循 格式git@host:user/repo。有没有办法使用吉托莱特

另一个问题。我的~/.ssh/config文件设置了以下条目:

Host <host>
User <user>
IdentityFile <path/to/public/key>

我没有任何指定git用户的配置,但我能够git@host:repo毫无问题地克隆。显然,我的 ssh 客户端正在使用我的公钥访问服务器,这就是为什么吉托莱特让我克隆 repo,但是我的 ssh 客户端如何知道使用仅为用户配置<user>而不是git用户本身配置的公钥?

答案1

Gitolite 和 ssh

限制用户使用特定命令对于 gitolite 来说非常重要。
如果你读到man sshd并查找 authorized_keys 文件格式,您将看到许多可以添加到公钥行的选项,这些选项以各种方式限制传入用户。特别要注意选项command=,它的意思是“无论传入用户要求做什么,都强制运行此命令”。

还要注意,当authorized_keys文件中有许多公钥(即多行)时,每行可以有一组不同的选项和command=值。

如果没有这个command=选项,ssh 守护进程将简单地给你一个 shell,这不是我们想要的 gitolite 密钥(尽管我们可能有其他可以用来获取 shell 的密钥)。

这是 gitolite 工作的基础;请确保你理解这一点

这些command=使用你的公钥名称作为用户名。

因此,所有 ssh 查询都可以通过以下方式完成:

  • 用户 git
  • 一个公钥,其名称在 中的 command= 指令的参数中注册~git/.ssh/authorized_keys

至于user/repos,与 Gitolite 最接近的是野生回购和回购模式

repo    CREATOR/a[0-9][0-9]

相关内容