通过SSH密钥仅添加对一个git存储库的访问权限,而不是整个主机

时间:2015-07-17 16:08:01

标签: git

在服务器上,我想要几个git存储库。我希望不同的用户(=不同的SSH密钥)可以访问不同的存储库(想想GitHub)。

我知道我可以将用户的SSH密钥添加到服务器上的authorized_keys。但这会让用户访问所有回购。

如何正确设置? GitHub是如何做到的?

2 个答案:

答案 0 :(得分:2)

最简单的解决方案是安装一个工具来管理对git存储库的远程访问,例如:

如果您不愿意使用这些选项中的任何一个,您可以通过将authorized_keys文件中的密钥绑定到特定命令(使用command=选项)来共同破解某些内容。一个验证存储库访问的包装器。 This answer有一些可能有助于您入门的想法。

答案 1 :(得分:0)

我为此问题设计了一个项目。具有虚拟授权的git信息库管理器:自定义虚拟路由,每个用户仅对特定信息库的特定访问权限:

功能:

  • 为每个用户访问特定的存储库。
  • 防止暴露原始内部路径。
  • 防止访问外部存储目录。
  • 具有读写访问权限。
  • 防止git shell之外的命令执行。
  • 仅使用一个ssh帐户即可使用具有多个访问权限的多个用户。
  • 非常精简,只有一个python脚本和一个json设置,不需要具有大型数据库结构的大型应用程序。

https://github.com/WHK102/gitman