git 經過ssh 進行認證鏈接

首先安裝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

這裏爲了演示創建user1 user2 兩個用戶分別模擬兩個開發人員,
                 創建git 用戶,源碼是經過git 用戶進行初始化,能夠將 它看成項目經理
並各自修改密碼

產生公鑰

ssh-keygen -C "你的email地址"  -t rsa windows

後面直接回車直到結束,中間能夠不須要任何設置,該命令將生成一對非對稱的公/私密鑰,默認它們被存儲在: 
XP/2003用戶:c:/Documents and Settings/登錄名/.ssh 
Vista用戶: c:/Users/登錄名/.ssh 服務器

linux          :~/.ssh ssh

下面分別爲user1 user2 產生公鑰,私鑰
 

 

 

這樣有/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 了, 此係小節,可忽略) 

 

相關文章
相關標籤/搜索