搭建自己的Git服務器


前言:

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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM