创建具有多个存储库的 git 服务器

创建具有多个存储库的 git 服务器

请从技术角度考虑我的问题。我面临着对 git 存储库的访问控制问题。我需要以某种方式区分某些 ssh 密钥的访问。也就是说,密钥应该允许访问一个存储库,而不是所有存储库。我查看了 git 服务器的组织方式:创建一个 git 用户(这就是它的名字,我很震惊)),创建一个存储库(一个)并添加开发参与者的 shh 密钥。所以,我需要这个存储库不是一个而是多个,但密钥并没有允许访问所有存储库。如果您知道 GitLab、Gitlab、gitlab 等服务和产品是如何组织的,我真的想知道如何组织访问。我将很高兴收到任何评论、问题、答案,提前感谢您对问题的关注)))

答案1

在 GitLab 中,您可以处理项目和项目组,并为其分配权限。官方文档解释得很好。

答案2

您可以检查gitolite项目代码。这是一个非常简单的纯命令行系统,用于管理具有多个用户和不同访问权限的多个 git 存储库。

它创建一个 ssh 用户gitolite,并在其中放入多个 ssh 公钥authorized_keys。它为每个单独的 ssh 公钥设置,以便为用户调用其"command=gitolite-shell username"包装器。然后,包装器使用 gitlite 配置来确定调用用户对每个 git 存储库的访问权限。authorized_keysgitolite-shell

相关内容