软件环境:在有网络条件下(主要是为了安装软件),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. ●BZOJ 3894 文理分科

    题链: https://vijos.org/d/ljt12138/p/58c696b8d3d8a16c62a248d4 (要权限号啊...用这个交吧) 题解: 题目大意:    N*M的矩阵,每个位置 ...

  2. OpenCV环境搭建(一)

    此环境搭建是OpenCV的python(一下简称py)开发环境搭建,建立在py3的环境和语法上实现的. windows系统搭建 系统环境:windows 10 + python 3.6 + OpenC ...

  3. MySQL数据库将多条记录的单个字段合并成一条记录

    原SQL AND acc.id = accRole.acc_id) AND accRole.role_id = T_PM_ROLE.id ORDER BY acc.id 结果,有一个人有两个角色,如果 ...

  4. java 学习笔记2 面向对象(上)

    类和对象 类是某一批对象的抽象,可以把类理解成某种概念.对象是一个具体存在的实体.类和对象是面向对象的核心. 类定义的是多个实例的特征,类不是具体存在,实例才是具体存在. 定义类(class)的语法: ...

  5. JAX-RPC 与 JAX-WS 的比较

    引言 Web 服务已经出现很久了.首先是 SOAP,但 SOAP 仅描述消息的情况,然后是 WSDL,WSDL 并不会告诉您如何使用 Java™ 编写 Web 服务.在这种情况下,JAX-RPC 1. ...

  6. Java Socket通信代码片

    package zhang; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOExcept ...

  7. python学习之路网络编程篇(第五篇)-续篇

    Python堡垒机实现之基础知识 一般的堡垒机必须要具备以下5个基本功能: 1.权限控制 2.执行命令 3.上传下载文件 4.远程登录 5.记录操作 权限控制 说明:根据不同的登录用户分配不同的可管理 ...

  8. 重置winsock目录解决不能上网的问题

    摘自:http://www.52microsoft.com/netsh-winsock-reset/ 有时候,我们会遇到能成功连接网络但是却无法上网的问题.屏幕右下角系统托盘中的网络连接图标显示正常, ...

  9. 分别用face++和百度获取人脸属性(python单机版)

    称之为单机版,主要是相对于调用摄像头实时识别而言.本篇主要py2下利用face++和百度接口获取本地图片中的人脸属性,并按照一定格式保存数据. face++版 face++是刚注册的,只能用一个试用的 ...

  10. Python安装与使用的常见问题

    1. Python安装问题 到Python官网下载Python最新版本 Windows x86-64 executable installer (64为操作系统选择这个) Windows x86 ex ...