为每个Git仓库配置SSH密钥

3
我按照以下教程设置了带有SSH的GIT服务器。

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

只要我是唯一使用GIT存储库的人,就没问题。现在我有多个用户需要访问GIT服务器上的特定存储库。上述方法允许所有用户访问服务器上的所有存储库。
如何使用各自的SSH密钥为每个用户允许访问对应的存储库?
2个回答

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
为了支持多用户,您需要为每个项目(或一组项目)设置一个git用户。对于许多用户,您需要为每个用户设置一个git用户帐户,并使用组文件权限来控制对共享存储库的访问。后者将需要使用git init --shared=xxx选项。

这是一种复杂的方法,但是是一个可行的解决方案。谢谢。 - BTR Naidu

-3

Git不支持这种仓库级别的访问控制。建议使用gitoliteGitlab CE等工具,通过SSH密钥管理仓库访问权限。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接