【问题标题】:SSH key per project in GitlabGitlab中每个项目的SSH密钥
【发布时间】:2019-03-19 14:25:31
【问题描述】:

我有一个问题,我不知道如何处理。

我在 Gitlab 中有 2 个 Repos,RepoA 和 RepoB。在我的 gitlab 用户中,我有 3 个 ssh 密钥,一个来自我的笔记本电脑,2 个来自与 2 个存储库一起使用的 2 个 VM(VMA 和 VMB)。通过这种方式,我可以轻松地从 VM 和笔记本电脑上拉取和推入。

在 RepoA 上,我有一个也可以工作的合作者。他将 RepoA 共享到他的 Gitlab 帐户,并且他可以访问 VMA 来推送和拉取代码。他永远无法访问 RepoB,所以我的问题就从这里来了。如果他能猜到 RepoB url,他可以在他已经访问的 VMA 上拉取并查看它,因为 Gitlab 没有为每个项目添加 ssh 密钥的精细方法。我可能在这里遗漏了一些非常合乎逻辑的东西,但我看不出是什么。

我怎样才能让我在 VMA 上的合作者只看到 RepoA。

这样做的一种黑客方式是在 gitlab 中生成第三个用户,该用户仅处理 VMA,并将在 Gitlab 上的此用户帐户中引入来自 VMA 的 ssh 密钥。但我敢打赌,一定有更好、更清洁的方法。

【问题讨论】:

  • 考虑在虚拟机上为协作者创建一个新用户帐户,并让他拥有自己的密钥,并且只允许他访问 gitlab 上的 repoA
  • GitLab 具有项目特定 SSH 密钥的功能:它们被称为“部署密钥”,您可以将它们用于只读或读/写访问。
  • “部署密钥”是解决方案。我试过了,它有效。谢谢@罗伯特。

标签: git ssh gitlab virtual-machine


【解决方案1】:

GitLab 具有项目特定 SSH 密钥的功能:

他们被称为 Deployment keys。您可以使用它们为一个或多个存储库提供只读或读/写访问权限。

【讨论】:

    猜你喜欢
    • 2021-01-15
    • 2020-03-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-30
    • 1970-01-01
    • 2022-09-23
    相关资源
    最近更新 更多