CentOS 搭建Git伺服器

2021-07-03 05:48:43 字數 2075 閱讀 9201

1,安裝openssh服務斷和客戶端

yum -y install openssh

2,安裝git和python-setuptools

yum -y install git python-setuptools

3,獲取並安裝gitosis,來管理git倉庫

git clone

cd gitosis

python setup.py install

4,在客戶端操作生成rsa公鑰,並把公鑰上傳到服務端的/tmp下

ssh-keygen -t rsa

scp ~/.ssh/***.pub root@server_ip:/tmp # 「***」 是上一句shell生成的公鑰的名稱,「server_ip」是對應伺服器的公網ip位址

5, 配置gitosis

useradd git # 建立git管理賬戶

sudo -h -u git gitosis-init > /tmp/id_rsa.pub #將公鑰匯入gitosis管理,生成管理賬戶,初始化gitosis-admin管理賬戶

chmod 755 /home/git/repositories/gitosis-admin.git/hooks/post-update # 修改gitosis的push許可權

6,為了操作時不輸入密碼將公鑰新增到authorized_keys使用私鑰訪問

cat /tmp/id_rsa.pub >> /home/git/.ssh/authorized_keys

chmod 600 /home/git/.ssh/authorized_keys # 預設好像就是600

7,gitosis配置,將管理專案 clone 到客戶端

git clone [email protected]:/gitosis-admin.git

8,新增新專案,修改gitosis-admin.config

vim gitosis.conf

[gitosis]

[group gitosis-admin]

writable = gitosis-admin

members = root@vm1 #顯示使用者[email protected]是初始化gitosis公鑰的擁有者,是唯一能管理gitosis-admin專案的人

[group jay_fans] #組名稱

members = root@vm1 #金鑰使用者名稱

writable = git-test #專案名稱

9, 初始、增加及使用專案git-test

cd /desktop

mkdir git-test

cd git-test

git init

touch readme

git add .

git commit -a -m 「init git-test」

git remote add origin git@server_ip:git-test.git

git push origin master

特別注意rsa公鑰的使用 :

在建立新專案時(管理專案除外)最好不要使用gitosis-admin的管理公鑰,盡可能讓它只服務於管理專案,否則在push或者clone的時候可能會報錯例

解決的辦法是:

1.重新生成一對私鑰公鑰 並將公鑰上傳到管理專案的 keydir 使用者使用對應的私鑰進行操作 (推薦)

2.clone,push ,pull 使用全路徑 例如:

git clone git@server_ip:/home/git/repositories/git-test.git

這樣使用起來不叫麻煩

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

CentOS搭建git伺服器

1.安裝 git 伺服器端 yum install y git安裝完後,檢視 git 版本 git version2.伺服器端建立 git 使用者,用來管理 git 服務,並為 git 使用者設定密碼 root localhost home id git id git 無此使用者 root loca...