搭建簡單的Git伺服器

2021-08-21 20:32:40 字數 2026 閱讀 4748

建立乙個遠端的git倉庫其實最好的選擇就是使用github,國內也有類似的**gitcafe。但對於某些珍視**的商業公司,它們不希望在網上公開公司專案的**,又不願意在github之類的**上使用付費功能;那就只有公司內部自己搭建一台git伺服器咯。

一、安裝openssh和git

搭建git伺服器,需要所在的linux電腦上安裝了openssh和git:

sudo apt-get install openssh-server openssh-client

sudo apt-get install git

二、建立乙個專門的linux賬戶

在linux上使用乙個單獨的賬戶來管理git倉庫:

sudo adduser git

按照提示輸入密碼即可,比如說,我設定的git使用者的密碼是"****svn"嘿嘿~

三、建立git倉庫

切換登入到git使用者,在git使用者的主目錄下建立git倉庫:

git init --bare gitest.git

這樣就會建立乙個裸倉庫——我們自己使用git管理**是不加--bare選項的,裸倉庫沒有工作區,因為伺服器上的git倉庫只是為了共享,方便專案成員交流**的。

執行完這個命令,在git使用者主目錄下就會出現乙個叫做"gitest.git"的目錄,裡面的內容我並不是太關心。

在名字"gitest.git"中,"gitest"是專案名字,之後同志們clone的時候就會獲得乙個此名字的目錄,用於來放**的;".git"的結尾,是用來在git伺服器上標識它是乙個git倉庫,正常使用的使用者不會看到自己的git版本庫名字有".git"結尾。

注:這一步的操作是以git使用者身份,在git使用者的主目錄下完成的,生成的"gitest.git"(或是自己隨便起的名字)目錄,以及此目錄下全部內容的所有者和所在使用者組都是"git",不是root或別的什麼使用者!

四、新增git伺服器的使用者登入證書

這一步,可以不做,也可以以後做;不新增的話,使用者每次使用這個git倉庫(clone之類的操作)都要輸入git使用者的密碼,就是上文我設定的"****svn":把git使用者的密碼告訴專案裡的所有使用者,似乎並不是乙個科學的方法吧。

新增的原理就是把所有使用者的ssh公鑰寫入git使用者的ssh授權檔案中。

依然登入git使用者,將所有使用者的id_rsa.pub檔案內容寫入到git使用者主目錄下.ssh/authorized_keys中,必須一行只有乙個。如果沒有.ssh目錄與authorized_keys檔案,自己建乙個就行;但是必須注意使用者和使用者組都是"git"。

怎麼生成id_rsa.pub,好像是使用者們執行ssh-keygen –t rsa。這就不多說了。

注:每個id_rsa.pub檔案都有一行內容,寫入authorized_keys中,也必須是一行只有乙個使用者的公鑰,必須一行乙個!我們可以這樣操作:

cat id_rsa.pub >> .ssh/authorized_keys

另外,authorized_keys檔案的許可權是"rw-r--r--",許可權必須是這個;如果不是,這個檔案會失效:就像它不存在一樣。所以,我在前面一直強調使用git使用者操作。如果使用別的使用者寫入,就要修改此檔案的許可權,一定記得最後再改回原來的許可權。

五、禁用git使用者的shell登入

這是出於安全的考慮:如果git使用者的密碼洩露,其他人就可以登入git伺服器,就有可能破壞git**庫。我們可以禁止git使用者的shell登入,來防止這種情況的發生。git不能使用shell登入,不會對使用者通過ssh操作**庫產生影響。

sudo vim /etc/passwd

在git對應的那一行將"/home/git:/bin/bash"改為"/home/git:/usr/bin/git-shell"。

六、現在就可以使用了

git clone [email protected]:/home/git/gitest.git

www.liaoxuefeng.com 上面有包含git的許多教程,我不少東西都是在這個**上學習的。強烈推薦給大家!

aningsk

2015-10-14

(呃,寫了日期才想起來,同學今天生日……)

簡單Git伺服器搭建

shell yum install gitshell useradd git etc passwd 將git使用者中最後 bin bash改為 usr bin git shell git x 1001 1001 home git usr bin git shell在客戶端使用ssh agent建立r...

git伺服器的簡單搭建

搭建git伺服器需要一台執行linux的機器,我的機器的系統是ubuntu 14.04,下面以我的機器為例介紹下git伺服器的搭建過程,最後介紹乙個新專案的建立過程。其中openssh server和opensssh client使git能夠使用ssh協議在客戶端和伺服器間傳輸檔案。sudo apt...

git伺服器的簡單搭建

sudo adduser git 在home下建立了同名的資料夾 設定密碼 passwd gitvi etc passwd 將git x 1001 1001 home git bin bash 改為git x 1001 1001 home git usr bin git shell 會在當前的路徑下...