今日,各大科技媒體板塊都被微軟收購GitHub刷屏了。昨天,微軟宣佈,通過75億美元的股票交易收購GitHub。
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解決方案。
閱讀更多 GDCA數安時代 的文章