2013-04-23 24 views
1

我有一个服务器有六个Git存储库,我已经通过一个SSH帐户读取并写入访问权限,所有都在/ opt/git /中,全部由SSH帐户拥有。基于SSH的选择性访问Git存储库

我想给其他人阅读+写访问一些存储库,但不是所有。

  • 如何创建一个只能访问少数选定存储库的新SSH用户?
  • 我可以使用文件权限(当前是0755)来控制这种类型的访问吗?
  • 有什么最佳实践吗?

我们不太可能在第三个开发者有一段时间,至少在我们没有得到正确的系统管理员之前,所以没关系,如果它“现在够好”。

回答

0

这将通过gitolite(一authorization layer)来管理最好的,这将允许您配置的列表:

  • SSH用户密钥

和准的用户想要正确的回购。

所有用户仍然会通过SSH访问这些回购与帐户混帐,但使用自己的公共/私有SSH密钥(在gitolite配置文件中注册的),用类似下面的命令生成:

ssh-keygen -t rsa -f "${H}/.ssh/myLogin" -C "My Gitolite access (not interactive)" -q -P "" 

每用户将设置一个%HOME%/.ssh/config file以便引用myLogin/myLogin.pub密钥。

+0

gitolite的问题是它需要很长时间来设置和配置。我更喜欢一些简单的东西。 – Martijn 2013-04-23 19:43:40

+0

@Martijn不,它只需要几秒钟。我有一个安装自动化(https://github.com/VonC/compileEverything/blob/master/gitolite/install_or_update_gitolite.sh),但即使手动它只有两个命令,克隆gitolite回购(如http:///stackoverflow.com/a/13646524/6309)。 – VonC 2013-04-23 19:46:54

+0

我想我会试试看。注意到你也有GitLab的脚本,它有一个UI。你对系统管理员技能有限的人建议什么? – Martijn 2013-04-24 06:55:57