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 將...