前言:
GitHub是一個免費托管開源代碼的遠程倉庫,使用起來即方便又安全,但在國內有時訪問巨慢,原因你懂得。還有一些公司和個人視源碼如生命,既不想開源代碼又不想給Github交保護費。這時搭建一個自己的Git服務器就很有必要了,下面介紹如何在CentOS上搭建自己的Git服務器。
一.搭建Git服務器及使用
1、安裝Git
執行以下命令安裝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
$ passwd yourpwd
最好切換到git用戶 不然后面新建的git倉庫都要改權限 煩煩煩!!
$ su - git
2、創建證書登錄
收集所有需要登錄的用戶的公鑰,公鑰位於id_rsa.pub文件中,把我們的公鑰導入到/home/git/.ssh/authorized_keys文件里,一行一個。
如果沒有該文件則創建它:
$ cd /home/git/
$ mkdir .ssh
$ chmod 700 .ssh
$ touch .ssh/authorized_keys
$ chmod 600 .ssh/authorized_keys
3、初始化Git倉庫
首先我們選定一個目錄作為Git倉庫,假定我們放在git用戶的宿主目錄/home/git/,在/home/git/目錄下輸入命令:
$ cd /home/git
$ git init --bare test.git
Initialized empty Git repository in /home/git/test.git/
以上命令會創建一個空倉庫,服務器上的Git倉庫通常都以.git結尾。
4、克隆倉庫
$ git clone git@your-ip:test.git
Cloning into 'test'...
warning: You appear to have cloned an empty repository.
Checking connectivity... done.
your-ip 為您 Git 所在服務器 ip 。
5.禁止Shell登錄
出於安全考慮,git用戶不允許登錄shell,這可以通過編輯/etc/passwd文件完成。
找到類似下面的一行:
git:x:502:502::/home/git:/bin/bash
改為
git:x:502:502::/home/git:/usr/bin/git-shell
這樣,git用戶可以正常通過ssh使用git,但無法登錄shell,因為我們為git用戶指定的git-shell每次一登錄就自動退出。
二.注意事項及說明
1、git倉庫可以放在任何目錄
放在/home/git目錄下(clone相對於git宿主目錄 /home/git/)
git clone git@your-ip:test.git
放在根目錄,新建git目錄作為倉庫(絕對路徑 /git/)
git clone git@your-ip:/git/test.git
如果域名綁定IP就可以直接用域名clone
git clone git@www.mayanlong.com:test.git
2、目錄權限問題
如果不是用git用戶創建的,注意以下目錄文件的權限問題。
.ssh
test.git…
如果有問題,可以把該目錄的所屬者改成git。
$ chown -R git:git test.git
版權聲明:本文為博主原創文章,未經博主允許不得轉載。
轉載聯系:http://weibo.com/imayanlong
個人博客:http://www.mayanlong.com