06.05 簡單粗暴,快速搭建git服務器

今日,各大科技媒體板塊都被微軟收購GitHub刷屏了。昨天,微軟宣佈,通過75億美元的股票交易收購GitHub。

簡單粗暴,快速搭建git服務器

GitHub是一個面向開源及私有軟件項目的託管平臺,廣受全球的程序員的喜愛。許多程序員會在上面上傳自己的代碼,或者瀏覽/下載別人家的代碼。目前GitHub已有2700萬名註冊用戶,代碼庫的數量則超過8000萬個,規模可以算是全球之最。對於很多程序員——尤其是和開源代碼打交道的程序員,GitHub已是一個必不可少的工具。

很多程序員不想把代碼寄放到別人的地方,會在GitHub搭建服務器,存放自己的代碼。為了方便更多程序員操作,下面介紹搭建簡單的git服務器

在服務器上搭建git服務,那就需要有一臺linux的服務器,通過幾條簡單的apt命令就可以完成安裝。

假設已經有sudo權限的用戶賬號,下面,正式開始安裝。

1、安裝Git

$ yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-devel

$ yum install git

接下來我們 創建一個git用戶組和用戶,用來運行git服務:

$ groupadd git

$ useradd git -g git

2、創建證書登錄

收集所有需要登錄的用戶的公鑰,公鑰位於id_rsa.pub文件中,把我們的公鑰導入到/home/git/.ssh/authorized_keys文件裡,一行一個。

如果沒有該文件創建它:

$ cd /home/git/

$ mkdir .ssh

$ chmod 755 .ssh

$ touch .ssh/authorized_keys

$ chmod 644 .ssh/authorized_keys

3、初始化Git倉庫

首先我們選定一個目錄作為Git倉庫,假定是/home/gitrepo/runoob.git,在/home/gitrepo目錄下輸入命令:

$ cd /home

$ mkdir gitrepo

$ chown git:git gitrepo/

$ cd gitrepo

$ git init --bare runoob.git

Initialized empty Git repository in /home/gitrepo/runoob.git/

以上命令Git創建一個空倉庫,服務器上的Git倉庫通常都以.git結尾。然後,把倉庫所屬用戶改為git:

$ chown -R git:git runoob.git

4、禁用shell登錄:

出於安全考慮,第二步創建的git用戶不允許登錄shell,這可以通過編輯/etc/passwd文件完成。找到類似下面的一行:

git:x:1001:1001:,,,:/home/git:/bin/bash

改為:

git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell

這樣,git用戶可以正常通過ssh使用git,但無法登錄shell,因為我們為git用戶指定的git-shell每次一登錄就自動退出。

5、克隆遠程倉庫:

現在,可以通過git clone命令克隆遠程倉庫了,在各自的電腦上運行:

$ git clone git@server:/srv/sample.git

Cloning into 'sample'...

warning: You appear to have cloned an empty repository.

剩下的推送就簡單了。

管理公鑰

如果團隊很小,把每個人的公鑰收集起來放到服務器的/home/git/.ssh/authorized_keys文件裡就是可行的。如果團隊有幾百號人,就沒法這麼玩了,這時,可以用Gitosis來管理公鑰。

這裡我們不介紹怎麼玩Gitosis了,幾百號人的團隊基本都在500強了,相信找個高水平的Linux管理員問題不大。

管理權限

有很多不但視源代碼如生命,而且視員工為竊賊的公司,會在版本控制系統裡設置一套完善的權限控制,每個人是否有讀寫權限會精確到每個分支甚至每個目錄下。因為Git是為Linux源代碼託管而開發的,所以Git也繼承了開源社區的精神,不支持權限控制。不過,因為Git支持鉤子(hook),所以,可以在服務器端編寫一系列腳本來控制提交等操作,達到權限控制的目的。Gitolite就是這個工具。

——————————————————————————

SSL證書也稱服務器證書,是HTTP明文協議升級HTTPS加密協議的重要渠道,是網絡安全傳輸的加密通道。關於更多SSL證書的資訊,請關注數安時代(GDCA)。GDCA致力於網絡信息安全,已通過WebTrust 的國際認證,是全球可信任的證書籤發機構。GDCA專業技術團隊將根據用戶具體情況為其提供最優的產品選擇建議,並針對不同的應用或服務器要求提供專業對應的HTTPS解決方案。


分享到:


相關文章: