CentOS7 搭建Git伺服器

geekzhou發表於2017-02-19

1.在伺服器上建立一個新使用者

adduser git

2.建立一個Git倉庫

cd /data/git //切換到希望建立工作區的目錄
git init --bare sample.git //建立一個Git倉庫,此時Git會建立一個唯一分支master
chown -R git:git sample.git//將sample.git的所有權從root修改到新建立的git

3.在伺服器端開啟RSA認證

在檔案/etc/ssh/sshd_config中新增下列三行內容:

RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile  .ssh/authorized_keys

建立用於存放客戶端公鑰的檔案

cd /home/git //切換到剛剛建立的git使用者目錄下
mkdir .ssh
vim authorized_keys //建立用於存放客戶端公鑰的檔案

4.在客戶端建立SSH key

ssh-keygen -t rsa -C "sample@geekzhou.com"

該命令會在使用者主目錄的.ssh資料夾下生成兩個檔案:用於儲存私鑰的id_rsa和用於儲存公鑰的id_rsa.pub

5.把步驟4生成的公鑰匯入伺服器

將生成的id_rsa.pub中的內容拷貝到伺服器檔案/home/git/.ssh/authorized_keys

6.在客戶端clone遠端git倉庫

git clone git@115.28.222.133:/data/git/sample.git
其中115.28.222.133是伺服器端的IP地址
(由於進行了步驟4和步驟5的設定,所以在clone倉儲的時候就無需再輸入密碼了)

7.禁止使用者git通過shell進行登入

由於進行了步驟4和步驟5的設定,此時客戶端可以通過ssh git@115.28.222.133 直接登入到伺服器,如需禁止,修改檔案/etc/passwd:

將git:x:1000:1000::/home/git:/bin/bash
修改為:git:x:1000:1000::/home/git:/usr/bin/git-shell

初始化master分支

在進行了一個commit操作後,master分支就會出現,此時執行git push就可以將本地的修改推送到遠端的master分支了.

至此遠端git伺服器搭建完畢!

相關文章