系統(tǒng)是Centos7,本文章記錄搭建過程中遇到的問題,方便以后參考
1.安裝git
#yum install -y git
2.創(chuàng)建一個(gè)新用戶為git服務(wù)
useradd git (添加一個(gè)用戶,用戶名叫g(shù)it)
passwd git (修改用戶git的密碼)
對(duì)于這個(gè)用戶,你不一定要叫g(shù)it,但是一般的都叫g(shù)it,我們就不再破壞這種規(guī)矩了。
這個(gè)指令之后,在/home下就多了一個(gè)git文件夾,代表我們的git用戶
然后用ssh遠(yuǎn)程連接試下是否能連接,如果無法連接,可能是沒給該用戶這個(gè)權(quán)限,我們可以更改etc/ssh/sshd_config。在其中增加AllowUsers:username(可以多個(gè),空格分開)給普通用戶增加ssh權(quán)限。
這里就是AllowUsers:git
3.創(chuàng)建倉庫
在/home/git下創(chuàng)建我們的項(xiàng)目倉庫,假設(shè)我的項(xiàng)目叫Sample,我們先cd到git目錄下,然后
mkdir sample.git
創(chuàng)建一個(gè)文件夾,這個(gè)名稱你也可以任意,但是一般的習(xí)慣是 項(xiàng)目.git來命名
接著進(jìn)入 sample.git目錄下,使用
git init --bare
創(chuàng)建一個(gè)倉庫,一定要帶bare參數(shù)
然后修改sample.git 的所有者
chown -R git:git **sample.git**/
chown -R 用戶名:所屬群組
4.修改配置文件
進(jìn)入 /etc/ssh 目錄,編輯 sshd_config,打開以下三個(gè)配置的注釋:
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
保存重啟sshd服務(wù),命令依據(jù)版本不同有區(qū)別的,可以百度下
5.創(chuàng)建存放公鑰的文件
AuthorizedKeysFile .ssh/authorized_keys
這個(gè)配置表示,我們的公鑰放在.ssh/authorized_keys這個(gè)文件中,而.ssh目錄是在工程目錄的上級(jí)目錄里,也就是/home/git這個(gè)目錄下,我們?cè)谶@個(gè)目錄下創(chuàng)建一個(gè).ssh文件夾,修改.ssh 文件夾的 owner 修改為 git。
chown -R git:git .ssh
6.將客戶端公鑰導(dǎo)入服務(wù)器端 /home/git/.ssh/authorized_keys 文件
我們采用的是ssh連接方式,如果不想每次輸密碼,就需要用密鑰驗(yàn)證,首先在git bash中
ssh-keygen -t rsa -C "472323087@qq.com"
郵箱任意,然后會(huì)讓你輸密碼,直接回車,也就是不填密碼,否則以后你每次都要輸這個(gè)密碼。創(chuàng)建完成會(huì)在c/user/用戶名 下生成一個(gè).ssh文件夾,里頭一個(gè)id_rsa.pub和id_rsa,id_rsa.pub就是給服務(wù)器的,id_rsa你留著用以驗(yàn)證。
公鑰生成完畢,就將它導(dǎo)入服務(wù)器。
打開Git Bash
$ ssh git@server 'cat >> .ssh/authorized_keys' < ~/.ssh/id_rsa.pub
這里補(bǔ)充一點(diǎn),git的地址結(jié)構(gòu)是
用戶名@服務(wù)器ip地址:git倉庫目錄
我們這里的話是
git@192.168.1.10:/home/git/sample.git
執(zhí)行上條命令,會(huì)要讓你輸入git用戶的密碼,這個(gè)密碼就是步驟2里的密碼。然后去服務(wù)器看下我們的
/home/git/.ssh下是否多了一個(gè)authorized_keys 文件,用 cat authorized_keys查看文件內(nèi)容,是否和客戶端的id_rsa.pub內(nèi)容一致。
修改 .ssh 目錄的權(quán)限為 700
修改 .ssh/authorized_keys 文件的權(quán)限為 600
cd 到git目錄下
chmod 700 .ssh
cd 到git/.ssh目錄下
chmod 600 authorized_keys
如此,服務(wù)器配置完畢。
7.從服務(wù)器clone代碼
git bash
git clone git@服務(wù)器ip地址:/home/git/sample.git
然后隨便加點(diǎn)東西看下提交等操作有沒有問題