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伺服器搭建完畢!