1gitolite构建git服务器

简介:  软件环境:在有网络条件下(主要是为了安装软件),UbuntuKylin 14.04 1 安装openssh-serveropenssh-client,如果用的是VPS之类的一般都默认安装好了,不过,不管有没有安装好,都执行下面的命令仍然是没有问题 sudo apt-get -y install openssh-server openssh-client


软件环境:在有网络条件下(主要是为了安装软件)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-rungitweb

安装命令是:

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,同步到服务器,才真正完成新用户的添加。


 

 

目录
相关文章
|
2月前
|
弹性计算 人工智能 安全
带你读《从基础到应用云上安全航行指南》——阿里云产品专家教你如何全方位构建ECS安全体系(3)
带你读《从基础到应用云上安全航行指南》——阿里云产品专家教你如何全方位构建ECS安全体系(3)
431 0
|
2月前
|
弹性计算 安全 网络安全
带你读《从基础到应用云上安全航行指南》——阿里云产品专家教你如何全方位构建ECS安全体系(2)
带你读《从基础到应用云上安全航行指南》——阿里云产品专家教你如何全方位构建ECS安全体系(2)
478 0
|
1月前
|
机器学习/深度学习 Python
Python基础:构建一个简单的Web服务器
Python基础:构建一个简单的Web服务器
51 1
|
2月前
|
存储 缓存 网络协议
Go语言并发编程实战:构建高性能Web服务器
【2月更文挑战第6天】本文将通过构建一个高性能的Web服务器实战案例,深入探讨如何在Go语言中运用并发编程技术。我们将利用goroutine和channel实现高效的请求处理、资源管理和并发控制,以提升Web服务器的性能和稳定性。通过这一实战,你将更好地理解和掌握Go语言在并发编程方面的优势和应用。
|
2月前
|
弹性计算 安全 网络安全
带你读《从基础到应用云上安全航行指南》——阿里云产品专家教你如何全方位构建ECS安全体系(1)
带你读《从基础到应用云上安全航行指南》——阿里云产品专家教你如何全方位构建ECS安全体系(1)
427 0
|
2月前
|
安全 Shell 网络安全
Git学习---Git快速入门、Git基础使用、Git进阶使用、Git服务器使用(IDEA集成GitHub、Gitee、GitLab)、GitHub Desktop客户端
Git学习---Git快速入门、Git基础使用、Git进阶使用、Git服务器使用(IDEA集成GitHub、Gitee、GitLab)、GitHub Desktop客户端
130 0
|
2月前
|
弹性计算
电子书阅读分享《基于ECS倚天实例的应用构建最佳实践》
电子书阅读分享《基于ECS倚天实例的应用构建最佳实践》
258 1
|
安全 Ubuntu Shell
Git - 自定义Git之搭建Git服务器
Git - 自定义Git之搭建Git服务器
289 0
|
网络安全 开发工具 git
|
安全 Shell Linux
手把手教你如何搭建Git服务器?
Git 是一款免费、开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。
1853 0