1gitolite构建git服务器
軟件環境:在有網絡條件下(主要是為了安裝軟件),UbuntuKylin 14.04
1?安裝openssh-serveropenssh-client,如果用的是VPS之類的一般都默認安裝好了,不過,不管有沒有安裝好,都執行下面的命令仍然是沒有問題
| sudo apt-get -y install openssh-server openssh-client
|
2?安裝git,這個是核心軟件,不可以缺少
| sudo apt-get -y install git
|
3添加gitolite用戶和同名用戶組,加上–system參數,用戶就不會再登錄界面顯示。
| sudo adduser --system --shell /bin/sh --group --disabled-password --home /home/gitolite gitolite
|
4生成ssh key,一路回車下來
| ssh-keygen -t rsa(關于要存儲路徑的,我選擇的是默認的,也就是說直接點擊enter實現)
進入/home/toto/MyDisk/gitolite目錄,輸入命令:ls –a 可以看到如下信息:
其中,admin是私鑰,不能刪除,要自己保存好,admin.pub就是驗證所需的公鑰 |
5?將你當前用戶的sshpub key復制到/tmp下備用(這種情況是本地安裝的方式)
| cp admin.pub /tmp/ubuntugege.pub pwd ? 如果你是ssh遠程登陸到服務器上安裝,就要把你本地的key復制到遠程的機器上 scp ~/.ssh/admin.pub gitolite.server:/tmp/ ubuntugege.pub |
6?安裝gitolite,在ubuntu中已經集成了,不用自己去下載。
| sudo apt-get –y install gitolite
注意,上面提示要安裝git-daemon-run和gitweb 安裝命令是: sudo apt-get –y install git-daemon-run sudo apt-get –y install gitweb |
7切換到gitolite用戶環境中,因為我要以gitolite用戶身份去初始化安裝。
| sudo su – gitolite 接著輸入: gl-setup /tmp/ ubuntugege.pub 注意:在安裝過程中會出現如下情況,直接退出即可:
版本倉庫位于:/home/gitolite/repositories/gitolite-admin.git/ 進入/home下,ls,發現如下:
輸入exit退出上面的命令行 |
8?把管理庫gitolite-admin克隆過來就可以開始gitolite用戶及代碼庫的管理了,如果不能克隆,那么就說明初始化的ssh pub key錯了,如圖就是成功了。
| git clone ssh://gitolite@localhost/gitolite-admin.git
輸入自己設置的密碼:123456 注意:所屬用戶
執行git clone之后,發現已經有了一個克隆的倉庫了。
|
9?管理Gitolite
A管理員克隆gitolite-admin管理庫
當gitolite安裝完成后,在服務器端自動創建了一個用于gitolite自身管理的git庫:gitolite-admin.git,克隆gitolite-admin.git庫。命令如下:
| git clone ssh://gitolite@localhost/gitolite-admin.git 驗證的命令如下: toto@toto-virtual-machine:~/gitolite-admin$ pwd /home/toto/gitolite-admin toto@toto-virtual-machine:~/gitolite-admin$ ls conf?keydir toto@toto-virtual-machine:~/gitolite-admin$ ls -F conf/?keydir/ toto@toto-virtual-machine:~/gitolite-admin$ ls conf/ gitolite.conf toto@toto-virtual-machine:~/gitolite-admin$ ls keydir/ ubuntugege.pub toto@toto-virtual-machine:~/gitolite-admin$ |
從上面可以看出gitolite-admin目錄下有兩個目錄conf/和keydir
keydir/ ubuntugege.pub文件
目錄keydir下初始時只有一個用戶公鑰.即ubuntugege用戶的公鑰。
conf/ gitolite.conf文件
該文件尾授權文件。初始內容為:
| toto@toto-virtual-machine:~/gitolite-admin/conf$ cat gitolite.conf repo???gitolite-admin ???????RW+???? =?? ubuntugege ? repo???testing ???????RW+???? =?? @all |
缺省授權文件中設置了兩個版本庫的授權:
gitolite-admin
即本版本庫(gitolite管理版本庫)只有ubuntugege用戶有讀寫和強制更新的權限
testing
缺省設置的測試版本庫,設置為任何人都可以讀寫以及強制更新。
10?增加新用戶
???增加新用戶,就是允許新用戶能夠通過公鑰訪問git.只要新用戶的公鑰添加到gitolite-admin版本庫的keydir目錄下,即完成新用戶的添加。
A?管理員從用戶獲取公鑰,并將公鑰按照username.pub格式進行重命名。
用戶可以通過郵件或其他方式將公鑰傳遞給管理員,切記不要將私鑰誤傳給管理員。如果發生私鑰泄露,馬上重新生成新的公鑰/私鑰對,并將新的公鑰傳遞給管理員,并申請將舊的公鑰作廢。
用戶從不同的客戶端主機訪問著不同的公鑰,如果希望使用同一個用戶名進行授權,可以按照username@host.pub方式明明年公鑰文件,和名為username@pub的公鑰指向同一個用戶username.
Gitolite也支持郵件地址格式的公鑰,即形如username@gmail.com.pub的公鑰。Gitolite能夠智能的區分是以郵件地址命名的公鑰還是相同用戶在不同主機上的公鑰。如果是郵件地址命名的公鑰,將以整個郵件地址作為用戶名。
??B 管理員進入gitolite-admin本地克隆版本庫中,復制新用戶公鑰到keydir目錄。
| $ cp dev1.pub keydir/?(注意生成公鑰的方法是通過ssh-keygen –t rsa的方式生成) ? 查看git倉庫的狀態
執行git add命令,將公鑰添加入版本庫。
執行git commit,完成提交
執行git push,同步到服務器,才真正完成新用戶的添加。
|
?
?
總結
以上是生活随笔為你收集整理的1gitolite构建git服务器的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 鸡蛋煮多长时间才熟啊?
- 下一篇: 露娜开放式厨房小游戏攻略(露娜开放式厨房