首先安裝git html
emerge -av git 一條命令搞定,若是你使用ubuntu redhat 有相應的yum apt-get 工具, linux
git麻煩在用戶管理及管理上,下面上三種解決辦法: git
# 若是須要團隊裏的每一個人都對倉庫有寫權限,又不能給每一個人在服務器上創建帳戶,那麼提供 SSH 鏈接就是惟一的選擇了。咱們假設用來共享倉庫的服務器已經安裝了 SSH 服務,並且你經過它訪問服務器。
#
# 有好幾個辦法可讓團隊的每一個人都有訪問權。 github
第一個辦法 是給每一個人創建一個帳戶,直截了當但過於繁瑣。反覆的運行 adduser 而且給全部人設定臨時密碼可不是好玩的。
#
# 第二個辦法 是在主機上創建一個 git 帳戶,讓每一個須要寫權限的人發送一個 SSH 公鑰,而後將其加入 git 帳戶的 ~/.ssh /authorized_keys 文件。這樣一來,全部人都將經過 git 帳戶訪問主機。這絲絕不會影響提交的數據——訪問主機用的身份不會影響 commit的記錄。
#
# 另外一個辦法 是讓 SSH 服務器經過某個 LDAP 服務,或者其餘已經設定好的集中受權機制,來進行受權。只要每一個人都能得到主機的 shell 訪問權,任何可用的 SSH 受權機制都能達到相同效 # 若是須要團隊裏的每一個人都對倉庫有寫權限,又不能給每一個人在服務器上創建帳戶,那麼提供 SSH 鏈接就是惟一的選擇了。咱們假設用來共享倉庫的服務器已經安裝了 SSH 服務,並且你經過它訪問服務器。
# shell
爲了簡便選用了第二種辦法 ,這種辦法採用SSH公鑰認證。 ubuntu
ssh-keygen -C "你的email地址" -t rsa windows
後面直接回車直到結束,中間能夠不須要任何設置,該命令將生成一對非對稱的公/私密鑰,默認它們被存儲在:
XP/2003用戶:c:/Documents and Settings/登錄名/.ssh
Vista用戶: c:/Users/登錄名/.ssh 服務器
linux :~/.ssh ssh
這樣有/home/user1/.ssh 下會產生兩個文件,id_rsa 私鑰,和id_rsa.pub公鑰文件 工具
公鑰樣子大概如此
該.ssh文件夾下面,私鑰放在id_rsa文件裏面,不用理會它;
對於user2 ,git 用戶做相同處理,而後各自的目錄會生成相應的文件
而後須要將user1 user2 各自的公鑰文件提供給git 用戶,
二、在linux服務器上將公鑰加到git用戶的authorized_keys文件中。
能夠參考:http://github.com/git-on-windows/rookies
git用戶的創建及設置參考:http://progit.org/book/zh/ch4-4.html
只要把它們加入 authorized_keys 文件(譯註:本例加入到了文件尾部):
這樣認證就建好了
而後用git 用戶在/home/git目錄下建一個庫 project_repos.git/
而後啓運服務 /etc/init.d/git-daemon restart
固然也要啓動sshd
/etc/init.d/sshd start
user1 鏈接 (這裏測試時將porject_repos.git 改成repos.git 了, 此係小節,可忽略)