建立乙個遠端的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 會在當前的路徑下...