2012-08-15 95 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

相關問題