CentOS搭建Git伺服器

2021-10-13 05:54:46 字數 4113 閱讀 3636

1、環境準備

伺服器端:centos 7.7 + git (version 1.8.3.1)

客戶端:windows10 + git (version 2.27.0.windows.1)

由於centos已經內建了openssh,如果您的系統沒有,請自行安裝

$ ssh -v

# 輸出以下表示openssh已安裝,可能版本不同,能用即可。

openssh_7.4p1, openssl 1.0.2k-fips 26 jan 2017

2、安裝git

linux 做為伺服器端系統,windows 作為客戶端系統,分別安裝 git。

①伺服器端:

$ yum install -y git

# 安裝完後,檢視 git 版本

②客戶端:

安裝完之後,檢視 git 版本

$ git --version

git version 2.27.0.windows.1

3、伺服器端建立git 使用者組與git使用者

建立使用者組gitgrp:

$ groupadd gitgrp
建立使用者admin:

$ useradd admin
給使用者admin設定密碼

4. 給使用者admin分配到gitgrp組

$ usermod -g gitgrp admin
5、伺服器端建立 git 倉庫

設定 git/gittest.git 為 git 倉庫

然後把 git 倉庫的 owner 修改為 admin

$ mkdir -p ./git/gittest.git

# 使用git init --bare可以建立乙個裸倉庫,並且這個倉庫是可以被正常clone和push的

$ git init --bare git/gittest.git/

initialized empty git repository in /home/admin/git/gittest.git/

$ cd git/

$ chown -r admin:gitgrp gittest.git/

6、客戶端 clone 遠端倉庫

從 linux git 伺服器上 clone 專案:

$ git clone admin@42.***.***.163:/home/admin/git/gittest.git
如果ssh用的不是預設的22埠,則需要使用以下的命令(假設ssh埠號是8000):

$ git clone admin@42.***.***.163:8000/home/admin/git/gittest.git
the authenticity of host '42.***.***.163 (42.***.***.163)' can't be established.

ecdsa key fingerprint is sha256:kytfsg6qyzvbsjx2f2vr1yzaivs11sdlmh0upuiirt0.

are you sure you want to continue connecting (yes/no/[fingerprint]

)?

輸入 yes:

warning: permanently added '42.***.***.163'

(ecdsa) to the list of known hosts.

此時 c:\users\使用者名稱\.ssh 下會多出乙個檔案 known_hosts,以後在這台電腦上再次連線目標 git 伺服器時不會再提示上面的語句。

後面提示要輸入密碼,可以採用 ssh 公鑰來進行驗證。

7、客戶端建立 ssh 公鑰和私鑰

此時 c:\users\使用者名稱\.ssh 下會多出兩個檔案 id_rsa 和 id_rsa.pub

id_rsa 是私鑰

id_rsa.pub 是公鑰

公鑰加密,私鑰解密

8、伺服器端 git 開啟 rsa 認證

儲存並重啟 sshd 服務:

$ systemctl restart sshd.service
由 authorizedkeysfile 得知公鑰的存放路徑是 .ssh/authorized_keys,實際上是 $home/.ssh/authorized_keys,由於管理 git 服務的使用者是 admin,所以實際存放公鑰的路徑是 /home/admin/.ssh/authorized_keys

在 /home/admin/ 下建立目錄 .ssh

然後把 .ssh 資料夾的 owner 修改為 admin

9、將客戶端公鑰匯入伺服器端 /home/admin/.ssh/authorized_keys 檔案

重要:修改 .ssh 目錄的許可權為 700

修改 .ssh/authorized_keys 檔案的許可權為 600

$ chmod 700 .ssh

$ cd .ssh/

$ chmod 600 authorized_keys

客戶端再次 clone 遠端倉庫
$ git clone admin@42.***.***.163:/home/admin/git/gittest.git
10、禁止 git 使用者 ssh 登入伺服器
admin:x:1000:1000::/home/admin:/bin/bash
修改為:

admin:x:1000:1000::/home/admin:/bin/bgit-shell
此時 git 使用者可以正常通過 ssh 使用 git,但無法通過 ssh 登入系統。

CentOS 搭建Git伺服器

1,安裝openssh服務斷和客戶端 yum y install openssh 2,安裝git和python setuptools yum y install git python setuptools 3,獲取並安裝gitosis,來管理git倉庫 git clone cd gitosis py...

CentOS搭建Git伺服器

root localhost desktop yum install y git 2 建立乙個git使用者,用來執行git服務 root localhost desktop useradd r s bin sh c git version control d home git git 3 設定許可權...

Centos搭建Git伺服器

1.安裝git centos安裝git只需要執行如下命令,直接安裝git yum install git2.建立git使用者 adduser git3.控制git使用者許可權,關掉bash許可權 vi etc passwd找到類似git x 1001 1001 home git bin bash 將...