1. 程式人生 > >CentOS搭建git伺服器

CentOS搭建git伺服器

一、安裝Git
yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-devel
yum install git
二、建立Git使用者組和使用者

用來執行Git服務

groupadd git
adduser git -g git
三、建立證書登入

伺服器中儲存所有登入使用者公鑰的檔案,該檔案位於 /home/git/.ssh/authorized_keys

若沒有則建立它:

cd /home/git/
mkdir .ssh
chmod 700 .ssh
touch .ssh/authorized_keys
chmod 600 .ssh/authorized_keys

需要登入使用者的公鑰,位於客戶端的id_rsa.pub檔案中,如 /Users/hanshaobo/.ssh/id_rsa.pub

將該使用者的公鑰存入git伺服器端的authorized_keys檔案中。

四、初始化git倉庫
cd /home
mkdir gitrepo
chown git:git gitrepo/
cd gitrepo

git init --bare myproject.git

建立成功則提示:

Initialized empty Git repository in /home/gitrepo/myproject.git/

把倉庫所屬使用者改為git:

chown -R git:git myproject.git
五、克隆倉庫

客戶端進入專案所在目錄中

git clone [email protected]伺服器ip:/home/gitrepo/myproject.git
六、禁止Git使用者通過shell登入

vim開啟/etc/passwd檔案

將 git:x:503:503::/home/git:/bin/bash 改為 git:x:503:503::/home/git:/bin/nologin

參考

現在客戶端可以通過 git clone 命令克隆遠端倉庫了,注意這裡有些問題需要注意,SSH對公鑰,私鑰的許可權和所有權的要求是非常嚴格的,總結如下:1,下面兩個目錄的所有權必須是git(上面建立的git使用者),所屬組也應該是git,許可權必須為700     ①/home/git     # chmod 700 /home/git     ②/home/git/.ssh     # chmod 700 /home/git/.ssh2,公鑰檔案的所有權必須是git,所屬組也必須是git,許可權必須是644     ①/home/git/.ssh/authorized_keys #c hmod 644 /home/git/.ssh/authorized_keys如果許可權不對,會造成不能正常登入,報錯資訊:Permission denied (publickey,gssapi-with-mic.....)

參考