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

标签 git ssh github

假设我们有两个独立的 github 用户:Foo 和 Bar。他们分别拥有 Quux 和 Waldo 存储库。所以 Foo 可以推送到 Foo/Quux 而不能推送到 Bar/Waldo。对面是 Bar。 然后 Foo 克隆了他的 Quux 存储库:

$ git clone ...
...
$ git remote -v
origin  git@github.com:Foo/Quux.git (fetch)
origin  git@github.com:Foo/Quux.git (push)

似乎虽然 Foo 通过 git 用户对 Foo/Quux 存储库有写入权限,但他没有通过同一用户对 Bar/Waldo 存储库的写入权限。有什么办法可以在我的 git 服务器上实现相同的行为吗?我是否应该为此目的编写自定义 sshd 守护进程?

最佳答案

你可以使用 Gitolite通过 SSH 对您的 git 存储库进行细粒度的访问控制,其中每个用户都由她的 SSH key 标识。

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

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

关于git - 如何在我的 git 服务器上获得类似 github 的 ssh 访问行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8465437/

相关文章:

ssh - Github 操作 SSH 命令上的 libcrypto 出现错误

github - git credential osxkeychain 无法执行二进制文件

git - 如何在维护提交历史记录的同时将多个存储库迁移到单一存储库中?

git - 如何在不记录日志的情况下进行git提交

perl - 为什么 ssh 在我将密码提供给 Perl 的 Net::SSH::Perl 后提示我输入密码?

configuration - 设置 hadoop 时 SSH 出现问题

github - "Restrict who can push to this branch"不再可用

swift - 这个 Swift 函数创建的对象到哪里去了?

git - 减少 .git 文件夹大小

git - 如何卡住存储库中的文件