在Windows上保护Git服务器?

时间:2011-04-28 20:47:44

标签: windows security git

使用msysgit和copssh,是否可以保护ssh部分,使其只能访问相关的git可执行文件,并且只能访问一个文件夹?

我觉得Windows上的git服务器比svn服务器(如visual svn)更开放。我希望被证明是错的。

5 个答案:

答案 0 :(得分:2)

我会将Linux服务器用于您的中央Git存储库。安装gitolite。这将使您能够管理分支权限等。

更新:

根据您最近的评论,只需要轻松一下,并在1分钟内完成。如果您担心用尽他们提供的500MB空间,可以将大型非私有工件存储为可以托管在github上的子模块。

希望这有帮助!

答案 1 :(得分:2)

在Windows上,我发现Apache和Smart Http(git-http后端)是托管Git服务器的最佳方式。

https://web.archive.org/web/20100308035130/http://progit.org/2010/03/04/smart-http.html

进入访问控制,我会建议你保持简单,有一个访问conf文件svn甚至gitolite / gitosis并在Git repo中编写简单的钩子(用Python,Ruby等)

钩子会为你提供很好的Git仓库控制权。您可以控制每个分支的签入,签入特定文件夹等。

看看git hooks手册页。 pre-receiveupdate是您可以为此目的使用的钩子。

请看Pro Git中关于如何在服务器端使用Git钩子强制执行策略的这一精彩章节 - https://git-scm.com/book/en/v2/Customizing-Git-An-Example-Git-Enforced-Policy

您可以轻松调整它们并添加适合您目的的功能。

答案 2 :(得分:1)

我非常推荐使用其中一个Git-HTTP项目。 请参阅我的回答:https://serverfault.com/questions/58425/setting-up-git-repository-on-remote-windows-server/163065#163065

您正试图让Windows的行为与UNIX相似。 最好配合流程,并使用基于.NET的解决方案作为Git服务器后端。


当您与一个小型双人项目(如您在评论中提到的)进行交易时,您还可以在Windows网络共享上托管git存储库。它只是工作,你克隆你的git客户端中的UNC路径(或映射的驱动器号)。

对于UNC路径,当您使用斜杠而不是反斜杠时(即//server01/git/myrepos.git)。

答案 3 :(得分:1)

答案 4 :(得分:0)

当我开始考虑设置公司git服务时,我们有以下要求: 1.将git存储库作为项目进行管理,我们可以在项目级别提供自助访问控制。 2. LDAP登录集成 3.低管理工作

我评估了香草git,git + git-http,gitolite。这些解决方案需要管理员来管理访问控制。如果团队规模很大,这将是一项重大努力。如果团队很小(5-10名开发人员),那么vanilla git就可以了。

我查看了github企业,使用github,后来使用了bitbucket。我们最终购买了bitbucket,并在本地版本上运行。 bitbucket符合我们的所有要求。此外,我们可以选择性地将某些AD组同步到bitbucket并在组级别管理访问。