您的位置:首页 > 其它

ubuntu git server & client

2017-06-23 11:18 246 查看
1.配置前准备
服务器:安装ssh server另外还装了gitosis做git的权限管理
sudo apt-get install openssh-server git-core

客户端:安装git-core openssh-client
sudo apt-get install git-core openssh-client
使用ssh-keygen生成一对密钥,注意 这个时候不要用sudo
ssh-keygen -t rsa(全都直接回车即可)
默认情况下,公钥和私钥会保存在~/.ssh目录下

2.服务器配置
服务器:创建git服务器管理用户
sudo useradd -m git
sudo passwd git

sudo mkdir /home/git/repositories

sudo chown git:git /home/git/repositories
sudo chmod 755 /home/git/repositories

git config --global user.name "test"
git config --global user.email "test@163.com"

sudo apt-get install python-setuptools

cd /tmp

git clone https://github.com/res0nat0r/gitosis.git
cd gitosis

sudo python setup.py install

cp ~/.ssh/id_rsa.pub /tmp

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

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

3.客户端配置
客户端:在/tmp目录下clone仓库
cd /tmp
git clone git@hostname:gitosis-admin.git
编辑gitosis.conf文件
cd gitosis-admin
gedit 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服务器:
将本用户的公钥拷贝到keydir目录内的user1.pud, 这个user1.pud名字 和gitosis.conf中的“members = user1”对应
cp /home/user1/.ssh/id_rsa.pud /tmp/gitosis-admin/keydir/user1.pud
git add .
git commit -am "add user1 pub"
git push

转载自: http://blog.sina.com.cn/s/blog_55feec4101010g4y.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: