2012-08-15 54 views
1

我在我的suse盒子上创建了一个ssh服务器,基本上我只是希望它用作使用ssh的git服务器,但是当我用ssh name @ server登录时,我可以查看我的home/repo目录,这很正常,但我甚至可以检查来自其他用户的文件,如我不想要的home/steve,如何设置用户repo只能访问git目录?说回家/回购/ repository.git?或只是从/ home/repo文件?ssh对于远程git存储库太“强大”了吗?如何设置权限?

我已经停用了“允许root登录”从YAST2-sshd的配置工具(基本上只是编辑工具的/ etc/sshd的/ sshd_config中)”,但似乎这还不够。

+0

我会建议你使用gitolite(https://github.com/sitaramc/gitolite)。那么你的用户不需要在服务器上登录。 – giZm0 2012-08-15 10:12:29

回答

0

SSH是太强大的,它允许交互式会话。
一个giZm0mentionsgitoliteauthorization layer可以利用通过SSH提供的身份验证,并允许对您的存储库访问控制的细粒度水平。
这仅仅是一个perl脚本,它可以将自己设置在~/.ssh/authorized_keys文件中以拦截任何git命令,并且valida他们对一个简单的文本配置文件。
这利用了ssh特性(与git无关),称为forced command

注意:gitolite也可以链接到httpd服务器:有关更多信息,请参见“Why do you need Gitosis or Gitolite?”或“git on HTTP with gitolite and nginx”。

+0

gitolite易于安装,并且灵活许可问题。 – Drake 2012-08-15 10:31:04

+0

@Drake表示同意,并且由于gitolite V3或'g3'及其VREF,您可以控制*很多*的内容:请参阅http://stackoverflow.com/questions/11569263/git-hook-to-detect-file-包含一个确定的字符串/ 11573529#11573529例如。 – VonC 2012-08-15 10:39:06