软件环境:在有网络条件下(主要是为了安装软件),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
–a 可以看到如下信息:

其中,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+    
=   ubuntugege

repo   testing

RW+    
=   @all

缺省授权文件中设置了两个版本库的授权:

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
–t rsa的方式生成)

查看git仓库的状态

执行git add命令,将公钥添加入版本库。

执行git commit,完成提交

执行git push,同步到服务器,才真正完成新用户的添加。

1gitolite构建git服务器的更多相关文章

  1. 用Gitolite 构建 Git 服务器

    转载 Gitolite 构建 Git 服务器 作者: 北京群英汇信息技术有限公司 网址: http://www.ossxp.com/ 版本: 0.1-1 日期: 2010-10-07 14:52:19 ...

  2. Gitolite 构建 Git 服务器

    Gitolite 构建 Git 服务器 Gitolite 构建 Git 服务器作者: 北京群英汇信息技术有限公司网址: http://www.ossxp.com/版本: 0.1-1日期: 2010-1 ...

  3. Git学习总结(9)——如何构建你自己的 Git 服务器

    现在我们将开始学习如何构建一个Git服务器,如何在具体的事件中写一个针对特定的触发操作的自定义Git(例如通告),如何发布你的代码到一个网站. 目前为止,用户对Git的焦点主要在Git的使用上.这篇文 ...

  4. 使用centos7构建本地git服务器

    git的安装非常简单 直接yum install git -y即可 大概看一下我的执行步骤吧 首先在服务器上执行以下操作,完成创建仓库 mkdir -p /data/test/bp.git #创建仓库 ...

  5. 常见3种Git服务器的构建

    学习Git不同的服务器形式,具体如下: - 创建SSH协议服务器 - 创建Git协议服务器 - 创建HTTP协议服务器 方案: Git支持很多服务器协议形式,不同协议的Git服务器,客户端就可以使用不 ...

  6. 关于git服务器的搭建

    Git 服务器可搭建在多个系统平台上. 本篇以 Windows 和 Ubuntu 系统为例,简单介绍 Git 服务器的构建. 最后使用 eclipse 的 egit 插件和 git clone 这两种 ...

  7. 搭建自己的git服务器--gogs

    //@desn:搭建自己的git服务器--gogs //@desn:码字不宜,转载请注明出处 //@author:张慧源  <turing_zhy@163.com> //@date:201 ...

  8. CentOS 7.2安装Jenkins自动构建Git项目

    1.环境 本文使用VMWare虚拟机进行实验. 最终实现目标,在Jenkins服务器上新建构建任务,从Git服务器上拉取master HEAD(不编译,仅演示),部署到"目标服务器" ...

  9. 如何搭建git服务器

    一.前言 现在越来越多的公司用git进行版本控制,不过git是默认是开源的,如果私有的话是需要付费的,如果不想付费自己可以搭建一个git服务器用来版本控制. 二.服务器端操作 1.安装git sudo ...

随机推荐

  1. 2015 多校联赛 ——HDU5344(水)

    Problem Description MZL loves xor very much.Now he gets an array A.The length of A is n.He wants to ...

  2. Codeforces Round #403 (Div. 1, based on Technocup 2017 Finals)

    Div1单场我从来就没上过分,这场又剧毒,半天才打出B,C挂了好几次最后还FST了,回紫了. AC:AB Rank:340 Rating:2204-71->2133 Div2.B.The Mee ...

  3. Python入门之装饰器九步学习入门

    第一步:最简单的函数,准备附加额外功能 '''示例1: 最简单的函数,表示调用了两次''' def myfunc(): print("myfunc() called.") myfu ...

  4. PTA 字符串关键字的散列映射(25 分)

    7-17 字符串关键字的散列映射(25 分) 给定一系列由大写英文字母组成的字符串关键字和素数P,用移位法定义的散列函数H(Key)将关键字Key中的最后3个字符映射为整数,每个字符占5位:再用除留余 ...

  5. 第二周个人作业WordCount

    1.Github地址 https://github.com/JingzheWu/WordCount 2.PSP表格 PSP2.1 PSP阶段 预估耗时 (分钟) 实际耗时 (分钟) Planning ...

  6. Struts+Hibernate+jsp页面,实现分页

    dao层代码 package com.hanqi.dao; import java.util.ArrayList; import java.util.List; import org.hibernat ...

  7. 一口一口吃掉Hibernate(四)——多对一单向关联映射

    hibernate对于数据库的操作,全部利用面向对象的思维来理解和实现的.一般的单独表的映射,相信大家都没有问题,但是对于一些表之间的特殊关系,Hibernate提供了一些独特的方式去简化它. 今天就 ...

  8. Django笔记--视图

    URLconf 在settings.py文件中通过ROOT_URLCONF指定根级url的配置 urlpatterns是一个url()实例的列表 一个url()对象包括: 正则表达式 视图函数 名称n ...

  9. jmeter分布式测试远程连接失败

    jmeter分布式部署其实很简单.但今天测试的时候发现了一个坑,远程连接一直失败. 原因:服务器上部署了slave,而这台服务器上有多个网卡.举个例子:ip分别为:192.168.100.6,10.1 ...

  10. c++ 深入理解虚函数

    为什么使用虚函数?什么是虚函数?虚函数是为了解决什么问题? 面向对象的三大特征: 封装 多态 继承 普通虚函数 虚析构函数 纯虚函数 抽象类 接口类 隐藏 vs 覆盖 隐藏与覆盖之间的关系 早绑定和晚 ...