Linux 環境下 Git 伺服器的搭建與基本使用(CentOS 7 版本)

生活無限好發表於2019-06-23

伺服器端:

1.安裝 Git

1.1 從yum上安裝git

yum –y install git

1.2 驗證是否安裝成功

git --version

如果顯示當前版本號,說明安裝成功

Linux 環境下 Git 伺服器的搭建與基本使用(CentOS 7 版本)

Linux 環境下 Git 伺服器的搭建與基本使用(CentOS 7 版本)

2.建立 Git 的專屬管理賬戶和密碼

2.1 建立 Git 賬戶

adduser git

2.2 設定 Git 賬戶的密碼

passwd git

連續兩次輸入密碼後即可

Linux 環境下 Git 伺服器的搭建與基本使用(CentOS 7 版本)

檢視 Git 賬戶是否建立成功

cd /home && ls -al

如果有 git 說明安裝成功

Linux 環境下 Git 伺服器的搭建與基本使用(CentOS 7 版本)

3. 建立測試git倉庫

  1. 切換到git賬戶
    su git
  2. 進入git賬號的使用者主目錄
    cd /home/git
  3. 在使用者主目錄下建立 test.git 倉庫的資料夾
    mkdir test.git  && cd test.git
  4. test.git 目錄下初始化 git 倉庫
    git init --bare
  • 其中 git init --bare 是在當前目錄建立一個裸倉庫,也就是說沒有工作區的檔案,直接把git倉庫隱藏的檔案放在當前目錄下,此目錄僅用於儲存倉庫的歷史版本等資料。

  • 倉庫的路徑為:/home/git/test.git

Linux 環境下 Git 伺服器的搭建與基本使用(CentOS 7 版本)

4.配置賬戶免密碼登入

4.1 建立ssh的預設目錄

  1. 進入 git 賬戶的主目錄
    cd /home/git
  2. 建立 .ssh的配置,如果此資料夾已經存在請忽略此步
    mkdir .ssh

4.2 建立校驗公鑰的配置檔案

  1. 進入 .ssh 目錄並建立 authorized_keys 檔案,此檔案存放客戶端遠端訪問的 ssh 的公鑰

    cd /home/git/.ssh
    touch authorized_keys
  2. 設定許可權

    chmod 700 /home/git/.ssh/
    chmod 600 /home/git/.ssh/authorized_keys

Linux 環境下 Git 伺服器的搭建與基本使用(CentOS 7 版本)

5. 開啟 RSA 認證

Centos 7.4 以上版本的系統請跳過

  1. 切換回 root 使用者
    su root

Linux 環境下 Git 伺服器的搭建與基本使用(CentOS 7 版本)

  1. 進入 /etc/ssh 目錄,編輯 sshd_config
    cd  /etc/ssh
    vi ssh_config

Linux 環境下 Git 伺服器的搭建與基本使用(CentOS 7 版本)

  1. i 進入插入模式,開啟以下三個配置的註釋(帶 # 為註釋), 按 ESC 退出插入模式,按 :wq 儲存
    RSAAuthentication yes
    PubkeyAuthentication yes
    AuthorizedKeysFile .ssh/authorized_keys
    1. 可以通過 vim 的正則搜尋快速定位, 命名模式下 :/RSAA

儲存後重啟sshd服務

systemctl restart sshd

Linux 環境下 Git 伺服器的搭建與基本使用(CentOS 7 版本)

  1. CentOS7.4棄用RSAAuthentication支援 : https://ashub.cn/articles/21
  2. Linux系統下如何配置SSH_Centos7 ssh連線配置 CentOS7下安全配置 : http://www.linuxdown.net/install/config/20...
  3. CentOS7.4配置SSH登入密碼與金鑰身份驗證踩坑 :https://www.cnblogs.com/Leroscox/p/9627809...

6. 禁止客戶端 shell 登入

如果 git 客戶端可以直接通過 shell 使用 git 賬戶來遠端登入伺服器,這樣是不安全的

  1. /home/git 下面建立 git-shell-commands 目錄,並把目錄的擁有者設定為 git 賬戶。可以直接用 git 賬號登入伺服器終端操作
    su git
    mkdir /home/git/git-shell-commands
  2. 修改 /etc/passwd檔案
    su root
    vim /etc/passwd

    可以通過 vim 的正則搜尋快速定位到這行 :/git:x

找到下圖所示內容, 其中 1000 可能是別的數字

Linux 環境下 Git 伺服器的搭建與基本使用(CentOS 7 版本)

git:x:1000:1000::/home/git:/bin/bash 

改為

git:x:1000:1000::/home/git:/bin/git-shell 

可能用到的快捷鍵:

  1. 最好不要直接改,可以先複製一行,然後註釋掉一行,修改一行,保留原始的
  2. vim快捷鍵: 命令模式下:yy 複製行,p 貼上 0 游標到行首 $ 到行尾 x 刪除一個字元 i進入插入模式
  3. 修改完後退出儲存: esc 進入命令模式, 輸入::wq! 儲存退出。

服務端配置到此全部完成

客戶端:

1.與服務端在同一主機下的客戶端配置

1.1 安裝git

由於是與服務端放在同一主機下,在安裝服務端時已經安裝

1.2 客戶端配置

  1. 設定使用者名稱和郵箱
    git config --global user.name "client_username"
    git config --global user.email "example@mail.com"
  2. 檢視是否存在ssh keys
    cd ~/.ssh

Linux 環境下 Git 伺服器的搭建與基本使用(CentOS 7 版本)

  1. 建立 ssh keys
    ssh-keygen -t rsa -C "example@mail.com"

    碰到需要輸入的地方直接按Enter鍵,最後建立成功後的結果如下

Linux 環境下 Git 伺服器的搭建與基本使用(CentOS 7 版本)

  1. 將生成的檔案複製到 git 目錄下
    cp /root/.ssh/id_rsa.pub /home/git/.ssh/test.pub
  2. test.pub 檔案中的內容追加到 authorized_keys
    cat test.pub >> authorized_keys

1.3 克隆倉庫

  1. 建立本地資料夾
    mkdir test_project && cd test_project
  2. 克隆遠端倉庫
    git clone git@ip地址:/home/git/test.git

    這時候,會提示克隆的倉庫是空的,現在倉庫的確是空的,所以沒有報錯

Linux 環境下 Git 伺服器的搭建與基本使用(CentOS 7 版本)

ls 檢視目錄下是否存在 test 資料夾,如果存在,說明克隆成功

Linux 環境下 Git 伺服器的搭建與基本使用(CentOS 7 版本)

2. 遠端客戶端配置(Windows 10)

2.1 安裝 Windows 版 Git 工具

  1. 雙擊 Git-2.14.0-64-bit.exe 執行

Linux 環境下 Git 伺服器的搭建與基本使用(CentOS 7 版本)

  1. 選擇安裝目錄

Linux 環境下 Git 伺服器的搭建與基本使用(CentOS 7 版本)

  1. 點選 Next

Linux 環境下 Git 伺服器的搭建與基本使用(CentOS 7 版本)

  1. 點選 Next

Linux 環境下 Git 伺服器的搭建與基本使用(CentOS 7 版本)

  1. 點選 Next

Linux 環境下 Git 伺服器的搭建與基本使用(CentOS 7 版本)

  1. 點選 Next

Linux 環境下 Git 伺服器的搭建與基本使用(CentOS 7 版本)

  1. 點選 Next

Linux 環境下 Git 伺服器的搭建與基本使用(CentOS 7 版本)

8.點選 Next

Linux 環境下 Git 伺服器的搭建與基本使用(CentOS 7 版本)

9.點選 Next

Linux 環境下 Git 伺服器的搭建與基本使用(CentOS 7 版本)

10.點選 Install

Linux 環境下 Git 伺服器的搭建與基本使用(CentOS 7 版本)

等待安裝完成

Linux 環境下 Git 伺服器的搭建與基本使用(CentOS 7 版本)

在桌面右鍵,如果顯示

Linux 環境下 Git 伺服器的搭建與基本使用(CentOS 7 版本)

說明安裝成功

2.2 客戶端配置

  1. 設定使用者名稱和郵箱
    git config --global user.name "client_username"
    git config --global user.email "example@mail.com"
  2. 檢查是否已經擁有ssh公鑰和私鑰
    進入目錄 C:\Users\你的使用者名稱 檢視是否有 .ssh 資料夾,此資料夾下是否有如下兩個檔案

Linux 環境下 Git 伺服器的搭建與基本使用(CentOS 7 版本)

  1. 如果沒有,那麼用 ssh-keygen 建立 ssh 的私鑰

Linux 環境下 Git 伺服器的搭建與基本使用(CentOS 7 版本)

右鍵桌面,選擇 Git Bash Here

Linux 環境下 Git 伺服器的搭建與基本使用(CentOS 7 版本)

  1. 建立 ssh keys
    ssh-keygen -t rsa -C "example@mail.com"

    碰到需要輸入的地方直接按Enter鍵,最後建立成功後的結果如下

Linux 環境下 Git 伺服器的搭建與基本使用(CentOS 7 版本)

  1. 手動將公鑰新增到伺服器中,先找到 C:\Users\你的使用者名稱.ssh\id_rsa.pub 這個檔案所在目錄
  2. 在當前目錄開啟 Git Bash Here

Linux 環境下 Git 伺服器的搭建與基本使用(CentOS 7 版本)

  1. 把本地的 id_rsa.pub 檔案拷貝到 git 伺服器
    scp ./id_rsa.pub root@你的ip地址:/home/git/.ssh/test.pub

Linux 環境下 Git 伺服器的搭建與基本使用(CentOS 7 版本)

由於上面的步驟禁止了 git客戶端 shell 登入,所以這裡只能使用 root 賬戶拷貝檔案

  1. 登入伺服器,找找上一步上傳的 test.pub 檔案,目錄為 /home/git/.ssh/
    9.將 test.pub 檔案中的內容追加到 authorized_keys
    cat test.pub >> authorized_keys

    2.3 克隆倉庫

  2. 建立本地資料夾
    mkdir test_project && cd test_project
  3. 克隆遠端倉庫
    git clone git@ip地址:/home/git/test.git

    這時候,會提示克隆的倉庫是空的,現在倉庫的確是空的,所以沒有報錯

Linux 環境下 Git 伺服器的搭建與基本使用(CentOS 7 版本)

ls 檢視目錄下是否存在 test 資料夾,如果存在,說明克隆成功

Linux 環境下 Git 伺服器的搭建與基本使用(CentOS 7 版本)

本地提交與伺服器端的拉取測試

  1. 在上一步克隆的 test 資料夾中新建一個檔案 test.txt

Linux 環境下 Git 伺服器的搭建與基本使用(CentOS 7 版本)

  1. 在當前目錄中開啟 Git Bash Here
    git status
    git add -A;
    git commit -m'test add'
    git push origin master

Linux 環境下 Git 伺服器的搭建與基本使用(CentOS 7 版本)

Linux 環境下 Git 伺服器的搭建與基本使用(CentOS 7 版本)

如果出現如上提示,說明本地提交成功

  1. 切換到伺服器端,進入 1.3 步驟中建立的資料夾下(請根據實際情況輸入目錄)
    cd /test_project/test
    git pull

Linux 環境下 Git 伺服器的搭建與基本使用(CentOS 7 版本)

如果出現如上提示,說明更新成功

結語

至此,整個 Git 服務的部署與使用就全部搭建完成,部署過程中使用的命令所代表的功能請自行百度,就不再一一說明了

www.haowuliaoa.com

相關文章