Git伺服器Gitosis安裝設定

2021-09-01 09:04:15 字數 4421 閱讀 8953

1、安裝 openssh伺服器

$ sudo yum -y install openssh openssh-client
2、建立個人公鑰和私鑰

在預設使用者的主目錄路徑下,執行以下命令,按照提示建立公鑰和私鑰

$ ssh-keygen -t rsa
預設生成2048位,如果需要提高安全級別,也可以通過下面的命令建立公鑰和私鑰

$ ssh-keygen -t rsa -b 4096
預設情況下,公鑰和私鑰會儲存在~/.ssh目錄下,如下所示:

$ cd ~/.ssh/;ls

id_rsa id_rsa.pub known_hosts

3、安裝 git伺服器

$ sudo yum -y install git-core
4、配置 git伺服器

建立git伺服器管理使用者

$ sudo useradd -m git

$ sudo passwd git

建立git倉庫儲存目錄

$ sudo mkdir /home/git/repositories
設定git倉庫許可權

$ sudo chown git:git /home/git/repositories

$ sudo chmod 755 /home/git/repositories

初始化全域性設定

$ git config --global user.name "myname"

$ git config --global user.email "myname@server"

5、安裝python的setup tool

$ sudo yum -y install python-setuptools
6、獲取並安裝gitosis

$ cd /tmp

$ git clone

$ cd gitosis

$ sudo python setup.py install

7、配置gitosis

$ cp ~/.ssh/id_rsa.pub /tmp

$ sudo -h -u git gitosis-init < /tmp/id_rsa.pub

$ sudo chmod 755 /home/git/repositories/gitosis-admin.git/hooks/post-update

8、管理gitosis配置

$ cd ~

$ git clone git@hostname:使用者名稱/gitosis-admin.git

$ cd gitosis-admin/

各個使用者按照前面提到的辦法生成各自的ssh公鑰檔案後,伺服器管理員把所有人的 ssh公鑰檔案都拿來,拷貝到keydir目錄下。

修改gitosis.conf檔案,如下所示

[gitosis]

[group gitosis-admin]

writable = gitosis-admin

members = a@server1

[group developers]

writable = helloworld

members = a@server1 b@server2

[group test]

readonly = helloworld

members = c@server3

這個配置檔案表達了如下含義:gitosis-admin組成員有a,該組對gitosis-admin倉庫有讀寫許可權; developers組有a,b兩個成員,該組對helloworld倉庫有讀寫許可權; test組有c乙個成員,對helloworld倉庫有唯讀許可權。 當然目前這些配置檔案的修改只是在你的本地,你必須推送到gitserver上才能真正生效。 加入新檔案、提交並push到git伺服器:

$ git add .

$ git commit -am "add helloworld project and users"

$ git remote add origin ssh://git@hostname/helloworld.git

$ git push origin master

9、例項說明

目標:新增使用者 john 和倉庫 foo 到gitosis,並和管理員miao合作管理

(1)使用者john新增並傳送id_rsa.pub給 miao

john:~$ ssh-keygen -t rsa

john:~$ cp /home/john/.ssh/id_rsa.pub /tmp

(2)gitosis管理員miao分配john許可權

miao:~$ cd ~/projects

#轉殖admin**

git clone [email protected]:gitosis-admin

cd gitosis-admin

#檢視配置檔案

cat gitosis.conf

[gitosis]

[group gitosis-admin]

writable = gitosis-admin

members = miao@u32-192-168-1-110

#admin公鑰在 keydir 目錄下

ls keydir/

[email protected]

#將john的公鑰複製到keydir目錄

cp /tmp/id_rsa.pub keydir/john.pub

#編輯配置檔案,新增 john 使用者

vi gitosis.conf

[gitosis]

[group gitosis-admin]

writable = gitosis-admin

members = miao@u32-192-168-1-110

[group foo]

writable = foo

members = miao@u32-192-168-1-110 john

#新增到git中

git add .

git commit -am "add member john and project foo"

git push

(3)使用者 miao 新增專案foo

miao:~$ cd ~/projects

mkdir foo

cd foo

git init

touch hello.txt

git add hello.txt

git commit -am 『first commit』

git remote add origin [email protected]:foo.git

git push origin master

(4)使用者 john clone foo並修改hello.txt

john:~$ git clone [email protected]:foo.git

cd foo

lsdate > hello.txt

git commit -am 『add time to hello.txt』 && git push

(5) 使用者 miao pull foo

miao:cd ~/projects/foo

$ vi .git/config

[core]

repositoryformatversion = 0

filemode = true

bare = false

logallrefupdates = true

[remote "origin"]

url = [email protected]:foo.git

fetch = +refs/heads/*:refs/remotes/origin/*

[branch "master"]

remote = origin

merge = refs/heads/master

#推送到**倉庫

git pull

基於gitosis管理git伺服器

新增乙個新專案 git clone git server gitosis admin.git keydir是放公鑰的 gitosis.conf是用來配置專案許可權的 group gitosis admin 這是分組 members 是成員,成員間用空格分開,這邊的成員名,來自於keydir下面的pu...

用gitosis搭建git伺服器

1 安裝gitsudo apt get install opensshserver openssh client git core 2 配置gitgit config global user.name x.xx git config global user.email x com 3 建立金鑰公鑰s...

基於gitosis的Git雲端伺服器配置

硬體 雲端阿里雲伺服器 軟體 雲端 gitosis git ssh 本地 cygwin 或者 gitbash 參考文章 詳細步驟如下 1 建立git賬號用於管理git伺服器 useradd s bin bash d home git g root m c manager for git server...