1. 程式人生 > >git使用者管理及管理

git使用者管理及管理

git在linux上的安裝不多說,參考下面的文章就可以順利完成,主要是依賴的庫。

安裝git
http://progit.org/book/zh/ch1-4.html

git麻煩在使用者管理及管理上,下面上三種解決辦法:

如果需要團隊裡的每個人都對倉庫有寫許可權,又不能給每個人在伺服器上建立賬戶,那麼提供 SSH 連線就是唯一的選擇了。我們假設用來共享倉庫的伺服器已經安裝了 SSH 服務,而且你通過它訪問伺服器。   
  1. 有好幾個辦法可以讓團隊的每個人都有訪問權。第一個辦法是給每個人建立一個賬戶,直截了當但過於繁瑣。反覆的執行 adduser 並且給所有人設定臨時密碼可不是好玩的。   
  2. 第二個辦法是在主機上建立一個 git 賬戶,讓每個需要寫許可權的人傳送一個 SSH 公鑰,然後將其加入 git 賬戶的 ~/.ssh/authorized_keys 檔案。這樣一來,所有人都將通過 git 賬戶訪問主機。這絲毫不會影響提交的資料——訪問主機用的身份不會影響commit的記錄。   
  3. 另一個辦法是讓 SSH 伺服器通過某個 LDAP 服務,或者其他已經設定好的集中授權機制,來進行授權。只要每個人都能獲得主機的 shell 訪問權,任何可用的 SSH 授權機制都能達到相同效  
如果需要團隊裡的每個人都對倉庫有寫許可權,又不能給每個人在伺服器上建立賬戶,那麼提供 SSH 連線就是唯一的選擇了。我們假設用來共享倉庫的伺服器已經安裝了 SSH 服務,而且你通過它訪問伺服器。

有好幾個辦法可以讓團隊的每個人都有訪問權。第一個辦法是給每個人建立一個賬戶,直截了當但過於繁瑣。反覆的執行 adduser 並且給所有人設定臨時密碼可不是好玩的。

第二個辦法是在主機上建立一個 git 賬戶,讓每個需要寫許可權的人傳送一個 SSH 公鑰,然後將其加入 git 賬戶的 ~/.ssh/authorized_keys 檔案。這樣一來,所有人都將通過 git 賬戶訪問主機。這絲毫不會影響提交的資料——訪問主機用的身份不會影響commit的記錄。

另一個辦法是讓 SSH 伺服器通過某個 LDAP 服務,或者其他已經設定好的集中授權機制,來進行授權。只要每個人都能獲得主機的 shell 訪問權,任何可用的 SSH 授權機制都能達到相同效


為了簡便選用了第二種辦法,這種辦法採用SSH公鑰認證。

1、產生公鑰
Java程式碼 後面直接回車直到結束,中間可以不需要任何設定,該命令將生成一對非對稱的公/私金鑰,預設它們被儲存在:

XP/2003使用者:c:/Documents and Settings/登陸名/.ssh

Vista使用者: c:/Users/登陸名/.ssh

該.ssh資料夾下面,金鑰放在id_rsa檔案裡面,不用理會它;
2、在linux伺服器上將公鑰加到git使用者的authorized_keys檔案中。
  可以參考:http://github.com/git-on-windows/rookies
  git使用者的建立及設定參考:http://progit.org/book/zh/ch4-4.html

注意,git上的倉庫對git使用者要有寫許可權,同時需要將/etc/ssh/sshd_config中將RSA認證開啟,即:

Java程式碼
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile  .ssh/authorized_keys


另外,我在ubuntu上連線用git使用者連線時,報Agent admitted failure to sign using the key 錯誤,查了一下需要啟動ssh-agent,然後新增id_rsa到ssh-agent中,再連線就可以了。
參考:http://www.jiangmiao.org/blog/559.html