1gitolite构建git服务器
软件环境:在有网络条件下(主要是为了安装软件),UbuntuKylin
14.04
1 安装openssh-serveropenssh-client,如果用的是VPS之类的一般都默认安装好了,不过,不管有没有安装好,都执行下面的命令仍然是没有问题
|
sudo apt-get -y install openssh-server openssh-client |
2 安装git,这个是核心软件,不可以缺少
|
sudo apt-get -y install git |
3添加gitolite用户和同名用户组,加上–system参数,用户就不会再登录界面显示。
|
sudo adduser --system --shell /bin/sh --group --disabled-password --home /home/gitolite gitolite |
4生成ssh key,一路回车下来
|
ssh-keygen -t rsa(关于要存储路径的,我选择的是默认的,也就是说直接点击enter实现) 进入/home/toto/MyDisk/gitolite目录,输入命令:ls 其中,admin是私钥,不能删除,要自己保存好,admin.pub就是验证所需的公钥 |
5 将你当前用户的sshpub key复制到/tmp下备用(这种情况是本地安装的方式)
|
cp admin.pub /tmp/ubuntugege.pub pwd 如果你是ssh远程登陆到服务器上安装,就要把你本地的key复制到远程的机器上 scp ~/.ssh/admin.pub gitolite.server:/tmp/ ubuntugege.pub |
6 安装gitolite,在ubuntu中已经集成了,不用自己去下载。
|
sudo apt-get –y install gitolite 注意,上面提示要安装git-daemon-run和gitweb 安装命令是: sudo apt-get –y install git-daemon-run sudo apt-get –y install gitweb |
7切换到gitolite用户环境中,因为我要以gitolite用户身份去初始化安装。
|
sudo su – gitolite 接着输入: gl-setup /tmp/ ubuntugege.pub 注意:在安装过程中会出现如下情况,直接退出即可: 版本仓库位于:/home/gitolite/repositories/gitolite-admin.git/ 进入/home下,ls,发现如下: 输入exit退出上面的命令行 |
8 把管理库gitolite-admin克隆过来就可以开始gitolite用户及代码库的管理了,如果不能克隆,那么就说明初始化的ssh
pub key错了,如图就是成功了。
|
git clone ssh://gitolite@localhost/gitolite-admin.git 输入自己设置的密码:123456 注意:所属用户 执行git clone之后,发现已经有了一个克隆的仓库了。 |
9 管理Gitolite
A管理员克隆gitolite-admin管理库
当gitolite安装完成后,在服务器端自动创建了一个用于gitolite自身管理的git库:gitolite-admin.git,克隆gitolite-admin.git库。命令如下:
|
git clone ssh://gitolite@localhost/gitolite-admin.git 验证的命令如下: toto@toto-virtual-machine:~/gitolite-admin$ pwd /home/toto/gitolite-admin toto@toto-virtual-machine:~/gitolite-admin$ ls conf keydir toto@toto-virtual-machine:~/gitolite-admin$ ls -F conf/ keydir/ toto@toto-virtual-machine:~/gitolite-admin$ ls conf/ gitolite.conf toto@toto-virtual-machine:~/gitolite-admin$ ls keydir/ ubuntugege.pub toto@toto-virtual-machine:~/gitolite-admin$ |
从上面可以看出gitolite-admin目录下有两个目录conf/和keydir
keydir/ ubuntugege.pub文件
目录keydir下初始时只有一个用户公钥.即ubuntugege用户的公钥。
conf/ gitolite.conf文件
该文件尾授权文件。初始内容为:
|
toto@toto-virtual-machine:~/gitolite-admin/conf$ cat gitolite.conf repo gitolite-admin RW+ repo testing RW+ |
缺省授权文件中设置了两个版本库的授权:
gitolite-admin
即本版本库(gitolite管理版本库)只有ubuntugege用户有读写和强制更新的权限
testing
缺省设置的测试版本库,设置为任何人都可以读写以及强制更新。
10 增加新用户
增加新用户,就是允许新用户能够通过公钥访问git.只要新用户的公钥添加到gitolite-admin版本库的keydir目录下,即完成新用户的添加。
A 管理员从用户获取公钥,并将公钥按照username.pub格式进行重命名。
用户可以通过邮件或其他方式将公钥传递给管理员,切记不要将私钥误传给管理员。如果发生私钥泄露,马上重新生成新的公钥/私钥对,并将新的公钥传递给管理员,并申请将旧的公钥作废。
用户从不同的客户端主机访问着不同的公钥,如果希望使用同一个用户名进行授权,可以按照username@host.pub方式明明年公钥文件,和名为username@pub的公钥指向同一个用户username.
Gitolite也支持邮件地址格式的公钥,即形如username@gmail.com.pub的公钥。Gitolite能够智能的区分是以邮件地址命名的公钥还是相同用户在不同主机上的公钥。如果是邮件地址命名的公钥,将以整个邮件地址作为用户名。
B
管理员进入gitolite-admin本地克隆版本库中,复制新用户公钥到keydir目录。
|
$ cp dev1.pub keydir/ (注意生成公钥的方法是通过ssh-keygen 查看git仓库的状态 执行git add命令,将公钥添加入版本库。 执行git commit,完成提交 执行git push,同步到服务器,才真正完成新用户的添加。 |
1gitolite构建git服务器的更多相关文章
- 用Gitolite 构建 Git 服务器
转载 Gitolite 构建 Git 服务器 作者: 北京群英汇信息技术有限公司 网址: http://www.ossxp.com/ 版本: 0.1-1 日期: 2010-10-07 14:52:19 ...
- Gitolite 构建 Git 服务器
Gitolite 构建 Git 服务器 Gitolite 构建 Git 服务器作者: 北京群英汇信息技术有限公司网址: http://www.ossxp.com/版本: 0.1-1日期: 2010-1 ...
- Git学习总结(9)——如何构建你自己的 Git 服务器
现在我们将开始学习如何构建一个Git服务器,如何在具体的事件中写一个针对特定的触发操作的自定义Git(例如通告),如何发布你的代码到一个网站. 目前为止,用户对Git的焦点主要在Git的使用上.这篇文 ...
- 使用centos7构建本地git服务器
git的安装非常简单 直接yum install git -y即可 大概看一下我的执行步骤吧 首先在服务器上执行以下操作,完成创建仓库 mkdir -p /data/test/bp.git #创建仓库 ...
- 常见3种Git服务器的构建
学习Git不同的服务器形式,具体如下: - 创建SSH协议服务器 - 创建Git协议服务器 - 创建HTTP协议服务器 方案: Git支持很多服务器协议形式,不同协议的Git服务器,客户端就可以使用不 ...
- 关于git服务器的搭建
Git 服务器可搭建在多个系统平台上. 本篇以 Windows 和 Ubuntu 系统为例,简单介绍 Git 服务器的构建. 最后使用 eclipse 的 egit 插件和 git clone 这两种 ...
- 搭建自己的git服务器--gogs
//@desn:搭建自己的git服务器--gogs //@desn:码字不宜,转载请注明出处 //@author:张慧源 <turing_zhy@163.com> //@date:201 ...
- CentOS 7.2安装Jenkins自动构建Git项目
1.环境 本文使用VMWare虚拟机进行实验. 最终实现目标,在Jenkins服务器上新建构建任务,从Git服务器上拉取master HEAD(不编译,仅演示),部署到"目标服务器" ...
- 如何搭建git服务器
一.前言 现在越来越多的公司用git进行版本控制,不过git是默认是开源的,如果私有的话是需要付费的,如果不想付费自己可以搭建一个git服务器用来版本控制. 二.服务器端操作 1.安装git sudo ...
随机推荐
- bzoj 3174: [Tjoi2013]拯救小矮人
Description 一群小矮人掉进了一个很深的陷阱里,由于太矮爬不上来,于是他们决定搭一个人梯.即:一个小矮人站在另一小矮人的 肩膀上,知道最顶端的小矮人伸直胳膊可以碰到陷阱口.对于每一个小矮人, ...
- [Noi2016]优秀的拆分
来自F allDream的博客,未经允许,请勿转载,谢谢. 如果一个字符串可以被拆分为 AABB 的形式,其中 A和 B是任意非空字符串,则我们称该字符串的这种拆分是优秀的. 例如,对于字符串 aab ...
- spring 自定义事件发布及监听(简单实例)
前言: Spring的AppilcaitionContext能够发布事件和注册相对应的事件监听器,因此,它有一套完整的事件发布和监听机制. 流程分析: 在一个完整的事件体系中,除了事件和监听器以外,还 ...
- 如何理解Spring AOP
什么是AOP? AOP(Aspect-OrientedProgramming,面向方面编程),可以说是OOP(Object-Oriented Programing,面向对象编程)的补充和完善.OOP允 ...
- Cisco 的基本配置实例之四----vlan的规划及配置(接入交换机)
4.2 接入交换机的相关配置 ## 在此例中,我们联入的是一台接入交换机,此交换机的gi0/1口上联至核心交换机.也就意味着我们需要配置gi0/1为trunk口.具体的配置如下: D-2960-3(c ...
- 消息中间件--ActiveMQ&JMS消息服务
### 消息中间件 ### ---------- **消息中间件** 1. 消息中间件的概述 2. 消息中间件的应用场景 * 异步处理 * 应用解耦 * 流量削峰 * 消息通信 --------- ...
- 利用mybatis-generator自动生成数据持久化的代码
MyBatis生成器简介 MyBatis Generator(MBG)是MyBatis MyBatis 和iBATIS的代码生成器.它将生成所有版本的MyBatis的代码,以及版本2.2.0之后的iB ...
- 模仿天猫实战【SSM版】——后台开发
上一篇文章链接:模仿天猫实战[SSM版]--项目起步 后台需求分析 在开始码代码之前,还是需要先清楚自己要做什么事情,后台具体需要实现哪些功能: 注意: 订单.用户.订单.推荐链接均不提供增删的功能. ...
- 剑指架构师系列-持续集成之Maven实现项目的编译、发布和部署
Maven组织项目进行编译.部署 Maven项目基本的结构说明如下: mazhi // 控制所有荐的编译.部署.发布 mazhi-app-parent // 项目的父项目,有一些公共的设置可以被子 ...
- for循环创建文件夹
bash里面, for n in a b c; do mkdir $n/dir; done 这个会在a,b,c三个文件夹下创建一个名为dir的文件夹. 之前没有在语句后面加分号,导致在cmd界面提交不 ...