Centos 7 搭建git服务器及使用gitolite控制权限
一、安装git
yum install git
git --version #查看git版本
二、升级git(可选,如果之前已经安装git,需要升级git到最新版本)
git clone https://github.com/iuscommunity/automation-examples
cd automation-examples/
git checkout bash
sudo ./enable-ius.sh
sudo yum swap git git2u
三、添加并切换到git账户
useradd git
su git
四、生成git账户对应的RSA密钥用于管理仓库
ssh -keygen -t rsa #一路回车,默认生成密钥位置为/home/git/.ssh目录
cd /home/git/.ssh
mv id_rsa.pub admin.pub #将生成的公钥文件改名为admin.pub
五、安装gitolite
cd /home/git
git clone git://github.com/sitaramc/gitolite
mkdir -p $HOME/bin
gitolite/install -to $HOME/bin
如果安装报错,则根据提示安装相应的依赖后重新(gitolite/install -to $HOME/bin)
六、配置gitolite
cd /home/git/.ssh
$HOME/bin/gitolite setup -pk admin.pub
完成后
cd /home/git
ls
可以看到多了一个repositories文件夹,打开repositories可以看到两个仓库gitolite-admin.git和test.git
看名称就知道干什么用的;下面我们主要对gitolite-admin.git仓库进行操作,就可以管理服务器上的全部仓库了。
七、管理用户权限及仓库
cd /home/git
git clone git@服务器IP:gitolite-admin
完成后cd到clone下来的gitolite-admin目录中,可以看到conf、keydir
keydir目录就是用来放所有客户端用户的pub文件的
conf目录就是用来配置仓库、用户、用户组权限的
cd conf
vim gitolite.conf
可以看到以下配置信息:
repo gitolite-admin
RW+ = admin
repo testing
RW+ = @all 创建用户组
@组名 = admin lisi zhangsan 与keydir中的公钥名相同
创建仓库
repo demo(即仓库名/项目名)
配置权限
RW+ = @用户组/用户名 多个空格隔开
提交更新
cd /home/git/gitolite-admin
git add .
git commit -am 'update msg'
git push origin master(首次需要根据提示配置email、name)
【以后每次新增仓库、修改权限、更新用户、用户组都得在这个clone的项目下conf中配置然后push到仓库服务器,用户的pub文件上传至keydir目录即可,以用户名命名好区分】
push完后可以看到/home/git/repositories新创建的仓库
八、客户端生成公钥发送管理员
windows下:
某一文件夹下鼠标右键,Git Bash Here
输入ssh -keygen -t rsa
一路回车生成密钥对
默认C:\Users\Administrator\.ssh下id_rsa.pub
更改名称,比如:id_rsa.pub然后发送给管理员,管理员上传至gitolite-admin下的keydir目录,conf下的gitolite.conf配置用户权限,需要跟pub文件名称保持一致,然后add commit push
九、客户端克隆项目验证权限是否成功
git bash方式:直接git clone git@服务器IP:项目.git即可
TortoiseGit方式:
需要配置密钥信息,否则会提示权限错误
1、打开TortoiseGit安装目录下的bin目录,打开puttygen.exe,点击load
选择之前生成的私钥,然后点击”save private key“保存成ppk文件。
2、打开TortoiseGit的Settings,点击左侧Git,然后点击右面板的全局配置
设置name为刚刚修改发给管理员的名称,点击保存。
3、系统菜单栏中点击TortoiseGit目录下的Pageant,右下角多出一个图标,点击图标,点击add key选择刚刚保存的ppk文件关闭窗口即可
4、clone项目(url:git@IP:项目名.git)也可在TortoiseGit的clone面板操作步骤3,有个load Putty Key
Centos 7 搭建git服务器及使用gitolite控制权限的更多相关文章
- CentOs上搭建git服务器
CentOs上搭建git服务器 首先安装setuptools wget http://pypi.python.org/packages/source/s/setuptools/setuptools-0 ...
- 【CentOS】搭建git服务器
参考资料: https://github.com/jackliu2013/recipes/blob/master/doc/linux/CentOS_6.4_git服务器搭建.md http://blo ...
- 在centos上搭建Git服务器
第一步:先安装一些相关依赖库和编译工具 yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel yum in ...
- CentOS下搭建Git服务器
1.首先需要安装Git,可以使用yum源在线安装: [root@localhost Desktop]# yum install -y git 2.创建一个git用户,用来运行git服务 # addus ...
- CentOS下搭建Git服务器(基于SSH协议)
1,安装Git所需依赖包 # yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel # ...
- 基于 CentOS 7 搭建 Git服务器
Git 是一款免费.开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目. ⒈安装依赖库和编译工具 1.安装依赖库 yum install -y curl-devel expat-devel ...
- centos 搭建git服务器
centos 6搭建git服务器 安装 rpm -ivh http://mirrors.aliyun.com/epel/epel-release-latest-6.noarch.rpm yum ins ...
- CentOS 6.4 搭建git 服务器
CentOS 6.4 搭建git 服务器 (2013-11-22 19:04:09)转载▼ 标签: it 分类: Linux 此文件是依据markdown所编写,更好效果参见本人github的文档ht ...
- CentOS搭建Git服务器及权限管理
声明:本教程,仅作为配置的记录,细节不展开,需要您有一点linux的命令基础,仅作为配置参考. 1. 系统环境 系统: Linux:CentOS 7.2 64位 由于CentOS已经内置了OpenSS ...
随机推荐
- synchronized用法详解
1.介绍 Java语言的关键字,可用来给对象和方法或者代码块加锁,当它锁定一个方法或者一个代码块的时候,同一时刻最多只有一个线程执行这段代码.当两个并发线程访问同一个对象object中的这个加锁同步代 ...
- mysql 1069 数据库无法启动解决办法
mysql无缘无故的启动不了了. 在控制台里面用root连接,报错10061. 在服务管理里面启动,报错1069. 在网上找了一些解决方法,删除my.ini之类的,都无效.后来在百度经验里面找到了可行 ...
- 封装类似thinkphp连贯操作数据库的Db类(简单版)。
<?php header("Content-Type:text/html;charset=utf-8"); /** *php操作mysql的工具类 */ class Db{ ...
- 数组,for语句(补10.11)
1.数组定义:一系列通数据类型的数据集合. 2.数组赋值的两种方法: 先定义后赋值:(赋值从0开始) var aa = new Arrey(); aa[0] = 1; aa[1] = 2; 定义并赋值 ...
- 洛谷P3382 【模板】三分法(三分找凹凸点)
P3382 [模板]三分法 题目描述 如题,给出一个N次函数,保证在范围[l,r]内存在一点x,使得[l,x]上单调增,[x,r]上单调减.试求出x的值. 输入输出格式 输入格式: 第一行一次包含一个 ...
- 牛客多校3 C-Shuffle Cards(rope大法解决数组分块)
Shuffle Cards 链接:https://www.nowcoder.com/acm/contest/141/C来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 26 ...
- 关于 == 和 equals() 的区别
对于正在学习java的,以及入行不久的小伙伴们,在面试中经常会被面试官问到 " == 和 equals() 的区别 ?"的问题,你是否回答好了呢? 示例一: //两个基本类型数据 ...
- ASP.NET in C#,ClientScript.RegisterStartupScript与ClientScript.RegisterClientScriptBlock用法之己见
ClientScript.RegisterStartupScript:http://msdn.microsoft.com/zh-cn/library/system.web.ui.clientscrip ...
- 数据库路由中间件MyCat - 使用篇(4)
此文已由作者张镐薪授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 配置MyCat 3. 配置conf/rule.xml 1.5GA版本中的规则配置比较笨,2.0中优化了一些, ...
- VisualStudio2017中新建的ASP.NET Core项目中的各个文件的含义
Program.cs is the entry point for the web application; everything starts from here. As we mentione ...