【问题标题】:Configure ssh key per git repo为每个 git repo 配置 ssh 密钥
【发布时间】:2016-03-04 22:03:33
【问题描述】:

我按照下面的教程使用 ssh 设置 git 服务器。

https://git-scm.com/book/en/v2/Git-on-the-Server-Setting-Up-the-Server

只要我是唯一一个使用 git repos 的人就可以了。现在,我有多个用户需要访问 git 服务器上的特定存储库。上述方法允许所有用户访问服务器上的所有 repos。

如何允许每个用户使用各自的 ssh 密钥进行 repo?

【问题讨论】:

    标签: git ssh


    【解决方案1】:

    假设这是在 Unix 机器上,那么 git 只是系统上的用户,并且强制执行 Unix 访问控制。

    1. 在系统上创建第二个 git 用户,例如git2
    2. 将新用户的密钥添加到第二个 git 用户的 authorized_keys 文件中。但不添加到第一个 git 用户的 authorized_keys 文件中。 (可选)将您自己的密钥添加到第二个 git 用户的 authorized_keys 文件中。
    3. 将第二个用户的存储库初始化为第二个 git 用户。确保在原始存储库上设置了权限,以便第二个 git 用户无法访问它们。这需要对 Unix shell、Unix 文件权限和chmod 命令有一点了解。
    4. 在处理第二个项目时使用第二个 git 用户,例如git2@gitserver:/opt/git/project.git

    要扩展到多个用户,您最终会为每个项目(或一组项目)设置 1 个 git 用户。对于许多用户,您最终会为每个用户设置一个 git 用户帐户并使用组文件权限来控制对共享存储库的访问。后者需要使用git init --shared=xxx 选项。

    【讨论】:

    • 这是一种复杂的方法,但却是一种可能的解决方案。谢谢。
    【解决方案2】:

    Git 不会像这样进行 repo 级别的访问。查看 gitoliteGitlab CE 之类的内容,以通过 SSH 密钥管理存储库访问。

    【讨论】:

      猜你喜欢
      • 2017-07-13
      • 1970-01-01
      • 2012-08-15
      • 1970-01-01
      • 2014-07-24
      • 1970-01-01
      • 1970-01-01
      • 2020-04-09
      • 2018-05-25
      相关资源
      最近更新 更多