2010-01-03 87 views
3

我想在我和朋友都可以訪問的共享主機帳戶上設置一個git存儲庫。我已經成功地加入這一行的〜/ .ssh/authorized_keys文件Subversion版本庫做到了這一點:git-shell相當於svnserve -r?

command="/usr/bin/svnserve -t -r /path/to/svn/repo \ 
    --tunnel-user=myfriend",no-port-forwarding,no-agent-forwarding,\ 
    no-X11-forwarding,no-pty [ssh key] 

我有這麼遠,得知Git的殼是Git的相當於svnserve的,但有沒有按」 t似乎等同於-r選項來限制對特定路徑的訪問。這是有問題的,因爲我不希望我的朋友有權訪問其他git存儲庫。

我已經簡要地閱讀了關於gitosis的信息,這似乎能夠做我想做的事情,但我想在嘗試設置另一個軟件來完成這一特定要求之前看看是否有更簡單的解決方案。提前致謝!

編輯:我發現這篇文章,提供了一個腳本來做到這一點:

http://eagain.net/blog/2007/03/22/howto-host-git.html

但實際上,它是由後來寫的gitosis和標記爲過時同一個人寫的。這也似乎gitosis將不可能在我的情況下,因爲它需要創建一個專用的UNIX用戶,我不能用共享的託管帳戶。但是,如果我誤解了這些,我很樂意被證明是錯誤的!

回答

2

這裏有一些選擇:

  • 控制存儲庫哪一個用戶可以訪問使用普通的UNIX權限。

  • 使用受限登錄外殼,如rssh,並讓您的朋友使用他的遙控器的網址爲rsync://

  • 通過使用用戶名和密碼的HTTP或HTTPS服務存儲庫來保護它。你需要啓用git鉤子來更新元數據。

0

我覺得它比所有的簡單:setting up a remote git repository

+0

這是一個很好的資源,但它似乎並沒有涵蓋我的特定問題。我瞭解如何設置遠程git存儲庫。我需要做的是控制對它的訪問,因爲它不是公共存儲庫。 – 2010-01-03 00:36:32

+0

忽略文章的後半部分 - 不應該首先給你一個受控制的存儲庫(給可以在你的機器上登錄到用戶名的人)?這可能是因爲我錯過了一些東西,所以如果我請讓我知道 - 我認爲這將有助於保持存儲庫的私密性,但也許我錯了(並且應該在自己的服務器上更改一些內容) – RyanWilcox 2010-01-03 02:46:17

+0

使存儲庫成爲私有的,因爲您必須能夠通過SSH連接才能訪問它。我的情況的不同之處在於我在有問題的shell帳戶下有多個git存儲庫,只想讓我的朋友訪問一個特定的存儲庫。 git-shell似乎沒有與svnserve的-r選項直接等價,它允許您將具有特定SSH密鑰的用戶執行的命令限制到特定路徑。利用這一點,我可以建立我的朋友的連接,只能訪問〜/ repos/repo1,而不是〜/ repos下的所有內容。 – 2010-01-03 03:52:07

0

Gitosis被替換爲。

該帳戶不必專用,它可以配置爲正確保留其他授權密鑰。