CentOS搭建git伺服器
阿新 • • 發佈:2019-01-06
一、安裝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.....)