如何在我的git服务器上获取ssh访问的类似github的行为

Mat*_*nov 3 git ssh github

假设我们有两个独立的github用户:Foo和Bar.他们分别拥有Quux和Waldo存储库.所以Foo可以推送到Foo/Quux并且无法推送到Bar/Waldo.对面酒吧是对的.然后Foo克隆了他的Quux存储库:

$ git clone ...
...
$ git remote -v
origin  git@github.com:Foo/Quux.git (fetch)
origin  git@github.com:Foo/Quux.git (push)
Run Code Online (Sandbox Code Playgroud)

看起来,当Foo通过git用户对Foo/Quux存储库具有写入权限时,他没有通过同一用户写入对Bar/Waldo存储库的访问权限.有什么办法可以在我的git服务器上达到相同的行为吗?我应该sshd为此目的编写自定义守护程序吗?

jos*_*chi 7

您可以使用Gitolite通过SSH对您的git存储库进行细粒度的访问控制,其中每个用户都通过她的SSH密钥进行识别.

与已经提到的gitosis相比,Gitolite仍然得到维护,并支持对存储库访问进行更精细的控制.

如果你想在内部获得更多GitHub的功能,你应该看一下GitLab,当然还有GitHub Enterprise.