在centos 下安装配置基于gitosis 的git 服务
2016-03-07 14:08
561 查看
在服务器上的准备工作(服务器IP为10.0.2.8 ):
1、安装 openssh服务器与客户端工具
[plain] view
plain copy
$ sudo yum install openssh-server openssh-client
2、创建个人公钥和私钥(用于后面的git服务的管理员管理)
在默认用户的主目录路径下,运行以下命令,按照提示创建公钥和私钥
[plain] view
plain copy
![](https://code.csdn.net/assets/CODE_ico.png)
![](https://code.csdn.net/assets/ico_fork.svg)
$ ssh-keygen -t rsa -C 'your email'
默认生成2048位,如果需要提高安全级别,也可以通过下面的命令创建公钥和私钥
[html] view
plain copy
![](https://code.csdn.net/assets/CODE_ico.png)
![](https://code.csdn.net/assets/ico_fork.svg)
ssh-keygen -t rsa -b 4096
默认情况下,公钥和私钥会保存在~/.ssh目录下,如下所示:
![](http://img.blog.csdn.net/20160307140518076?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
3、安装 git服务器
[plain] view
plain copy
![](https://code.csdn.net/assets/CODE_ico.png)
![](https://code.csdn.net/assets/ico_fork.svg)
$ sudo yum install git-core
4、配置 git服务器
创建git服务器管理用户
[plain] view
plain copy
![](https://code.csdn.net/assets/CODE_ico.png)
![](https://code.csdn.net/assets/ico_fork.svg)
$ sudo useradd -m git
$ sudo passwd git
创建git仓库存储目录
[plain] view
plain copy
![](https://code.csdn.net/assets/CODE_ico.png)
![](https://code.csdn.net/assets/ico_fork.svg)
$ sudo mkdir /home/git/repositories
设置git仓库权限
[plain] view
plain copy
![](https://code.csdn.net/assets/CODE_ico.png)
![](https://code.csdn.net/assets/ico_fork.svg)
$ sudo chown git:git /home/git/repositories
$ sudo chmod 755 /home/git/repositories
初始化全局设置
[plain] view
plain copy
![](https://code.csdn.net/assets/CODE_ico.png)
![](https://code.csdn.net/assets/ico_fork.svg)
$ git config --global user.name "myname"
$ git config --global user.email "myname@server"
5、安装python的setup tool
[plain] view
plain copy
![](https://code.csdn.net/assets/CODE_ico.png)
![](https://code.csdn.net/assets/ico_fork.svg)
$ sudo yum install python-setuptools
6、获取并安装gitosis
[plain] view
plain copy
![](https://code.csdn.net/assets/CODE_ico.png)
![](https://code.csdn.net/assets/ico_fork.svg)
$ cd /tmp
$ git clone git://eagain.net/gitosis.git //测试时从这拿不到,可换成 git clone https://github.com/res0nat0r/gitosis.git
$ cd gitosis
$ sudo python setup.py install
7、配置gitosis
[plain] view
plain copy
![](https://code.csdn.net/assets/CODE_ico.png)
![](https://code.csdn.net/assets/ico_fork.svg)
$ cp ~/.ssh/id_rsa.pub /tmp //上面第2步生成的公匙
$ sudo -H -u git gitosis-init < /tmp/id_rsa.pub //将该公匙导入gitosis里,这时本机已经有了为git的管理权限了
$ sudo chmod 755 /home/git/repositories/gitosis-admin.git/hooks/post-update
为了git操作时不用输入密码,还要做以下配置
[plain] view
plain copy
![](https://code.csdn.net/assets/CODE_ico.png)
![](https://code.csdn.net/assets/ico_fork.svg)
$ cat /tmp/id_dsa.pub >> /home/git/.ssh/authorized_keys //将root的公匙导入到git目录的 authorized_keys文件中
$ chmod 600 /home/git/.ssh/authorized_keys
8、管理gitosis配置
[plain] view
plain copy
![](https://code.csdn.net/assets/CODE_ico.png)
![](https://code.csdn.net/assets/ico_fork.svg)
$ cd ~
$ git clone git@hostname:/gitosis-admin.git
$ cd gitosis-admin/
$ ls -al
看到以下结果
![](http://img.blog.csdn.net/20160307140610170?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
gitosis.conf是git仓库与权限配文件,keydir目录是存放其它客户机的公匙目录。
[plain] view
plain copy
![](https://code.csdn.net/assets/CODE_ico.png)
![](https://code.csdn.net/assets/ico_fork.svg)
$ more gitosis.conf
gitosis.conf 对应的内容
[plain] view
plain copy
![](https://code.csdn.net/assets/CODE_ico.png)
![](https://code.csdn.net/assets/ico_fork.svg)
[gitosis]
[group gitosis-admin]
writable = gitosis-admin
members = root@localhost.localdomain
来这里git的服务已基本配置完毕,但要团队开发中用起来还要进以下配置:
在成员机(ip=10.0.2.100)上操上面第1与第2步生成自已的公匙,
[html] view
plain copy
![](https://code.csdn.net/assets/CODE_ico.png)
![](https://code.csdn.net/assets/ico_fork.svg)
$ scp .ssh/id_rsa.pub root@10.0.2.8:~/gitosis-admin/keydir/baozhubin99@qq.pub //将本机的公匙copy到gitosis的keydir中
再切换到git服务上(ip=10.0.2.8)
[plain] view
plain copy
![](https://code.csdn.net/assets/CODE_ico.png)
![](https://code.csdn.net/assets/ico_fork.svg)
$ cd ~
$ cd gitosis-admin
$ cat keydir/baozhubin99@qq.pub >> /home/git/.ssh/authorized_keys //将tester的公匙导入到git目录的 authorized_keys文件中
$ vi gitosis.conf
修改gitosis.conf
[plain] view
plain copy
![](https://code.csdn.net/assets/CODE_ico.png)
![](https://code.csdn.net/assets/ico_fork.svg)
[gitosis]
[group gitosis-admin]
writable = gitosis-admin
members = root@localhost.localdomain
#加一个组myteam
[group myteam]
members = baozhubin99@qq baozhubin100@qq#这里的tester对上面公匙文件名
writable = test_project #项目仓库名
提交到版本库
[plain] view
plain copy
![](https://code.csdn.net/assets/CODE_ico.png)
![](https://code.csdn.net/assets/ico_fork.svg)
$ git
add .
$ git commit -a -m "Allow tester write access to test_project"
$ git push origin master
这时tester便有权限操作test_project仓库了,回到成员机(ip=10.0.2.100)上
[plain] view
plain copy
![](https://code.csdn.net/assets/CODE_ico.png)
![](https://code.csdn.net/assets/ico_fork.svg)
$ cd ~
$ mkdir test_project
$ cd test_project
$ echo "testing ">test.txt
$ git init //初始化本地版本
$ git remote add origin git@10.0.2.8:test_project.git //加到远程版本库中
$ git add .
$ git commit -a -m "哈哈哈,测试一下"
$ git push origin master
克隆成功
1、安装 openssh服务器与客户端工具
[plain] view
plain copy
$ sudo yum install openssh-server openssh-client
2、创建个人公钥和私钥(用于后面的git服务的管理员管理)
在默认用户的主目录路径下,运行以下命令,按照提示创建公钥和私钥
[plain] view
plain copy
![](https://code.csdn.net/assets/CODE_ico.png)
$ ssh-keygen -t rsa -C 'your email'
默认生成2048位,如果需要提高安全级别,也可以通过下面的命令创建公钥和私钥
[html] view
plain copy
![](https://code.csdn.net/assets/CODE_ico.png)
ssh-keygen -t rsa -b 4096
默认情况下,公钥和私钥会保存在~/.ssh目录下,如下所示:
3、安装 git服务器
[plain] view
plain copy
![](https://code.csdn.net/assets/CODE_ico.png)
$ sudo yum install git-core
4、配置 git服务器
创建git服务器管理用户
[plain] view
plain copy
![](https://code.csdn.net/assets/CODE_ico.png)
$ sudo useradd -m git
$ sudo passwd git
创建git仓库存储目录
[plain] view
plain copy
![](https://code.csdn.net/assets/CODE_ico.png)
$ sudo mkdir /home/git/repositories
设置git仓库权限
[plain] view
plain copy
![](https://code.csdn.net/assets/CODE_ico.png)
$ sudo chown git:git /home/git/repositories
$ sudo chmod 755 /home/git/repositories
初始化全局设置
[plain] view
plain copy
![](https://code.csdn.net/assets/CODE_ico.png)
$ git config --global user.name "myname"
$ git config --global user.email "myname@server"
5、安装python的setup tool
[plain] view
plain copy
![](https://code.csdn.net/assets/CODE_ico.png)
$ sudo yum install python-setuptools
6、获取并安装gitosis
[plain] view
plain copy
![](https://code.csdn.net/assets/CODE_ico.png)
$ cd /tmp
$ git clone git://eagain.net/gitosis.git //测试时从这拿不到,可换成 git clone https://github.com/res0nat0r/gitosis.git
$ cd gitosis
$ sudo python setup.py install
7、配置gitosis
[plain] view
plain copy
![](https://code.csdn.net/assets/CODE_ico.png)
$ cp ~/.ssh/id_rsa.pub /tmp //上面第2步生成的公匙
$ sudo -H -u git gitosis-init < /tmp/id_rsa.pub //将该公匙导入gitosis里,这时本机已经有了为git的管理权限了
$ sudo chmod 755 /home/git/repositories/gitosis-admin.git/hooks/post-update
为了git操作时不用输入密码,还要做以下配置
[plain] view
plain copy
![](https://code.csdn.net/assets/CODE_ico.png)
$ cat /tmp/id_dsa.pub >> /home/git/.ssh/authorized_keys //将root的公匙导入到git目录的 authorized_keys文件中
$ chmod 600 /home/git/.ssh/authorized_keys
8、管理gitosis配置
[plain] view
plain copy
![](https://code.csdn.net/assets/CODE_ico.png)
$ cd ~
$ git clone git@hostname:/gitosis-admin.git
$ cd gitosis-admin/
$ ls -al
看到以下结果
gitosis.conf是git仓库与权限配文件,keydir目录是存放其它客户机的公匙目录。
[plain] view
plain copy
![](https://code.csdn.net/assets/CODE_ico.png)
$ more gitosis.conf
gitosis.conf 对应的内容
[plain] view
plain copy
![](https://code.csdn.net/assets/CODE_ico.png)
[gitosis]
[group gitosis-admin]
writable = gitosis-admin
members = root@localhost.localdomain
来这里git的服务已基本配置完毕,但要团队开发中用起来还要进以下配置:
在成员机(ip=10.0.2.100)上操上面第1与第2步生成自已的公匙,
[html] view
plain copy
![](https://code.csdn.net/assets/CODE_ico.png)
$ scp .ssh/id_rsa.pub root@10.0.2.8:~/gitosis-admin/keydir/baozhubin99@qq.pub //将本机的公匙copy到gitosis的keydir中
再切换到git服务上(ip=10.0.2.8)
[plain] view
plain copy
![](https://code.csdn.net/assets/CODE_ico.png)
$ cd ~
$ cd gitosis-admin
$ cat keydir/baozhubin99@qq.pub >> /home/git/.ssh/authorized_keys //将tester的公匙导入到git目录的 authorized_keys文件中
$ vi gitosis.conf
修改gitosis.conf
[plain] view
plain copy
![](https://code.csdn.net/assets/CODE_ico.png)
[gitosis]
[group gitosis-admin]
writable = gitosis-admin
members = root@localhost.localdomain
#加一个组myteam
[group myteam]
members = baozhubin99@qq baozhubin100@qq#这里的tester对上面公匙文件名
writable = test_project #项目仓库名
提交到版本库
[plain] view
plain copy
![](https://code.csdn.net/assets/CODE_ico.png)
$ git
add .
$ git commit -a -m "Allow tester write access to test_project"
$ git push origin master
这时tester便有权限操作test_project仓库了,回到成员机(ip=10.0.2.100)上
[plain] view
plain copy
![](https://code.csdn.net/assets/CODE_ico.png)
$ cd ~
$ mkdir test_project
$ cd test_project
$ echo "testing ">test.txt
$ git init //初始化本地版本
$ git remote add origin git@10.0.2.8:test_project.git //加到远程版本库中
$ git add .
$ git commit -a -m "哈哈哈,测试一下"
$ git push origin master
克隆成功
相关文章推荐
- [Linux]从控制台一次读取一个字符,无需等待回车键
- Linux文件种类和扩展名
- linux下cscope的使用
- linux下cscope 使用方法
- linux ps top 命令 VSZ,RSS,TTY,STAT, VIRT,RES,SHR,DATA的含义【转】
- Deepin linux下安装netbeans
- CentOS6.5基于snort+barnyard2+base的 入侵检测系统的搭建
- Linux初学:(一)Linux概述
- linux查看磁盘空间
- How To Install Zabbix Server On CentOS 7
- Linux解压/压缩命令总结
- 嵌入式 armlinux内核编译注意事项
- Linux内核编译与裁剪(ARM版)
- CentOS 7安装MySQL
- Linux下创建与解压tar, tar.gz和tar.bz2文件及压缩率对比 | 沉思小屋
- Linux 病毒跑满带宽处理
- 启动Mediation_Function失败及解决方案
- Linux gcc rpm安装以及文件(非yum安装)
- Linux - 安装SecureCRT的rz/sz 安装配置
- Centos下利用Nload监控网卡流量的方法