1、安裝 openssh伺服器
$ sudo yum -y install openssh openssh-client
2、建立個人公鑰和私鑰
在預設使用者的主目錄路徑下,執行以下命令,按照提示建立公鑰和私鑰
$ ssh-keygen -t rsa
預設生成2048位,如果需要提高安全級別,也可以通過下面的命令建立公鑰和私鑰
$ ssh-keygen -t rsa -b 4096
預設情況下,公鑰和私鑰會儲存在~/.ssh目錄下,如下所示:
3、安裝 git伺服器$ cd ~/.ssh/;ls
id_rsa id_rsa.pub known_hosts
$ sudo yum -y install git-core
4、配置 git伺服器
建立git伺服器管理使用者
建立git倉庫儲存目錄$ sudo useradd -m git
$ sudo passwd git
$ sudo mkdir /home/git/repositories
設定git倉庫許可權
初始化全域性設定$ sudo chown git:git /home/git/repositories
$ sudo chmod 755 /home/git/repositories
5、安裝python的setup tool$ git config --global user.name "myname"
$ git config --global user.email "myname@server"
$ sudo yum -y install python-setuptools
6、獲取並安裝gitosis
7、配置gitosis$ cd /tmp
$ git clone
$ cd gitosis
$ sudo python setup.py install
8、管理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
各個使用者按照前面提到的辦法生成各自的ssh公鑰檔案後,伺服器管理員把所有人的 ssh公鑰檔案都拿來,拷貝到keydir目錄下。$ cd ~
$ git clone git@hostname:使用者名稱/gitosis-admin.git
$ cd gitosis-admin/
修改gitosis.conf檔案,如下所示
這個配置檔案表達了如下含義:gitosis-admin組成員有a,該組對gitosis-admin倉庫有讀寫許可權; developers組有a,b兩個成員,該組對helloworld倉庫有讀寫許可權; test組有c乙個成員,對helloworld倉庫有唯讀許可權。 當然目前這些配置檔案的修改只是在你的本地,你必須推送到gitserver上才能真正生效。 加入新檔案、提交並push到git伺服器:[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
9、例項說明$ git add .
$ git commit -am "add helloworld project and users"
$ git remote add origin ssh://git@hostname/helloworld.git
$ git push origin master
目標:新增使用者 john 和倉庫 foo 到gitosis,並和管理員miao合作管理
(1)使用者john新增並傳送id_rsa.pub給 miao
(2)gitosis管理員miao分配john許可權john:~$ ssh-keygen -t rsa
john:~$ cp /home/john/.ssh/id_rsa.pub /tmp
(3)使用者 miao 新增專案foomiao:~$ cd ~/projects
#轉殖admin**
git clone git@192.168.1.115: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/
miao@u32-192-168-1-110.pub
#將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
(4)使用者 john clone foo並修改hello.txtmiao:~$ cd ~/projects
mkdir foo
cd foo
git init
touch hello.txt
git add hello.txt
git commit -am 『first commit』
git remote add origin git@192.168.1.115:foo.git
git push origin master
(5) 使用者 miao pull foojohn:~$ git clone git@192.168.1.115:foo.git
cd foo
lsdate > hello.txt
git commit -am 『add time to hello.txt』 && git push
miao:cd ~/projects/foo
$ vi .git/config
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
[remote "origin"]
url = git@192.168.1.115: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...