伺服器上安裝git倉庫和git本地
原文來自: https://blog.csdn.net/li_wen01/article/details/52411543
git伺服器搭建,本來是一件簡單的事情,但是因為網上的很多教程都不詳細,造成的後果就是搭建出來的伺服器很多的許可權的問題,於是折騰了很久,簡單記錄一下。伺服器上又是倉庫又是本地.
例如:在伺服器上gittest資料夾作為倉庫,在伺服器上test資料夾作為本地.
伺服器系統:linux 7.2
伺服器git版本:git version 1.9.0
客戶端git版本:git version 1.7.9.5
服務端操作:
1.git 安裝,不同系統有不同的安裝方式,Google一下就有了。
2.建立一個git 使用者,不需要為這個使用者建立密碼,用來執行git服務。
3.建立證書登入:
剛建立的git使用者它是它是沒有~/.ssh/和~/.ssh/authorized_keys檔案的 ,因此這裡需要手動建立,這裡為了避免許可權的問題 ,這裡的檔案建立全部使用git使用者處理
adduser git
su - git
mkdir .ssh
chmod 700 .ssh
touch ~/.ssh/authorized_keys
chmod 644 ~/.ssh/authorized_keys
vim ~/.ssh/authorized_keys
把公鑰複製到~/.ssh/authorized_keys這裡需要注意:切換使用者的時候,su - git 中間的 - 不能省略,不然後面可能會出現沒有許可權建立資料夾ssh。
4.初始化git倉庫
為了避免許可權的問題,下面的操作請使用開始建立的git使用者操作。先選定一個目錄作為Git倉庫
su - git
cd /home/git/
mkdir gittest
git init --bare gittest
5.禁用shell登入
在網路上的很多教程都是通過編輯/etc/passwd檔案來完成,
git:x:1001:1001:,,,:/home/git:/bin/bash
改為
git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell
其實這裡有一個坑,應該先使用which git-shell命令獲得git-shell 的安裝路徑,在替換掉/bin/bash。
比如在我伺服器中:
[[email protected] git]# which git-shell
/usr/local/bin/git-shell
那麼上面的/etc/passwd檔案就應該修改為:
git:x:1001:1001:,,,:/home/git:/usr/local/bin/git-shell
到這裡伺服器端的設定就結束
客戶端操作(遠端本地和伺服器本地)
1.安裝git
2.生成 id_rsa.pub檔案
$ ssh-keygen -t rsa
一路回車,不需要輸入任何的密碼,將生成的id_rsa.pub檔案裡面的內容拷貝到服務端的authorized_keys 檔案。這樣就可以通過git clone 命令來克隆遠端倉庫了。
[email protected]:~# git clone [email protected]:/home/git/gittest
Cloning into 'gittest'...
The authenticity of host '192.168.0.2 (192.168.0.2)' can't be established.
RSA key fingerprint is 57:81:cc:7c:48:52:4e:a0:f2:16:86:84:ae:d2:32:ee.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.0.2' (RSA) to the list of known hosts.
warning: You appear to have cloned an empty repository.
結束。
然後將本地的專案git push傳到伺服器的倉庫,最後在伺服器上做本地獲取 git pull.
---------------------
作者:li_wen01
來源:CSDN
原文:https://blog.csdn.net/li_wen01/article/details/52411543