背景:

  • 一台windows电脑,Xshell可以登录centos服务器(centos7.2 64位,有root用户权限),windows电脑已经安装好git和tortoies
  • 在windows下下载和上传文件用的是tortoies工具,tortoies版本是1.6(安装过程中选择的是tortoiesgitplink)

博客内容大致分以下几部分:

  • 安装gitosis
  • 修改gitosis*权限
  • 创建管理员用户
  • 配置gitosis仓库,初始化
  • 添加项目和项目成员

配置步骤:

1、  在centos下,安装gitosis。安装git,用git来下载gitosis安装包,由于安装gitosis依赖python库,在安装gitosis之前安装python的setuptools,接着安装gitosis。

1)  安装python-setuptools。

root用户下:

#yum install python python-setuptools //安装python-setuptools

2)  安装git 2.5。

root用户下:

#wget https://www.kernel.org/pub/software/scm/git/git-2.5.0.tar.gz //下载git压缩包#tar -zxf git-2.5.0.tar.gz //解压#cd git-2.5.0# ./configure --prefix=/usr/local/git# make && make install //安装git# ln -s /usr/local/git/bin/* /usr/bin/# git --version //查看git版本,有版本信息则安装成功

3) 下载gitosis 2.0,暂存在tmp目录下。

root用户下:

#cd  /tmp#git clone https://github.com/res0nat0r/gitosis.git    //下载gitosis安装包
# cd gitosis # sudo python setup.py install  //安装gitosis

  

有finish表示安装成功。

2、在centos下,修改gitosis文件的权限,将权限改为755,使得root用户有可写可读可执行权限,组和其他用户有可读可执行权限。

1) 修改/tmp/gitosis目录的权限,改成755.

-----root用户

将/tmp/gitosis目录下的所有文件的权限改成755,进去gitosis目录下检查看看是否所有文件的权限是否都改成了755,确保权限改好了:

root用户下:

#chmod -R 755 gitosis
#ls -la

2)在/usr/bin目录下找到gitosis的文件,若权限不是755,则修改成755,然后检查下权限是否都修改好了:

root用户下:

#cd /usr/bin# ls -l git* //查找文件,看看gitosis文件权限#chmod 755 gitosis* //修改gitosis文件权限

3)进入到/usr/lib/python2.7/sit*下,将 /usr/lib/pyth*/sit*/ gitosis-0.2-py2.7.egg目录下的文件改成755权限。

---root用户下:

# cd /usr/lib/python*/sit* //进入/usr/lib/pyth*/sit*目录
# chmod -R 755 gitosis*

3、在window下,生成私钥和公钥,将公钥上传到centos服务器,然后在centos服务器上修改公钥权限(改为755)。

1)在windows下,打开git bash(默认安装好了git),输入ssh-keygen,回车三次,出现如下图则说明密钥生成成功,密钥默认保存在c:\usr\电脑名称\.ssh目录下,截图上有生成密钥的地址:

$ssh-keygen //生成公钥和私钥

公钥:id_rsa.pub   私钥:id_rsa

2)将公钥上传到centos服务器/tmp目录下,在这个过程中需要输入root用户的密码。

---git bash下:

//此处我的root用户名是root,服务器IP地址格式类似:111.11.11.11,将公钥上传的目录是/tmp
scp ~/.ssh/id_rsa.pub root用户名@centos服务器地址:/tmp

3)在centos服务器上tmp查找公钥权限,将权限改为755。

---root用户下:

#cd /tmp
#chmod 755 id_rsa.pub

4、 新建gitosis管理员gittest(管理员名字任意取,我这里取gittest),设置密码。

1)创建用户gittest和设置密码

---root用户下

#useradd gittest //创建用户gittest
#passwd gittest  //给用户设置密码//然后在输入两遍你设置的密码,显示授权信息则创建成功

2)在上一步创建用户之后,默认会在home目录生成一个gittest的目录,将gittest目录的权限改为755.

---root用户下

#chmod -R  755 /home/gittest

5、用公钥初始化gitosis,在/home/gittest目录下生成两个文件,一个是gitosis,另一个是repotories仓库。 

---root用户下

//gittest是gitosis的管理员,/tmp/id_rsa.pub是放置公钥的目录
#sudo -H -u gittest gitosis-init < /tmp/id_rsa.pub

出现以下信息则配置成功:

6、在本地电脑上新建一个文件夹(默认安装好了tortoies),然后下载gitosis-admoin仓库。

1)在文件夹空白处,右键git clone,填写URL和添加私钥,然后就把仓库clone下来了,生成了一个gitosis-admoin的目录。

注:由于我安装tortoiesgit过程中,默认选择的是tortoiesgitplink,需要将私钥由id_rsa改成id_rsa.ppk。用tortoiesgitplink.exe加载id_rsa,然后保存为私钥id_rsa.ppk。

2)在gitosis-admoin的目录下有keydir和gitosis.conf文件:keydir是放置gitosis用户的公钥(格式是git用户名.pub);gitosis.conf是配置gitosis仓库中项目和项目用户的文件。

至此只有管理员gittest可以管理仓库gitosis-admin。

7、增加项目test,将管理员gittest和xiaoming加入到项目test中,管理员配置test仓库。配置test仓库授权给管理员gittest和xiaoming后,管理员gittest和xiaoming可以在本地下载test仓库,上传项目test文件及代码到服务器和和从服务器上下载项目test文件及代码。

1)在git用户的window电脑下,让git用户按照第3步中生成私钥和公钥的方式生成公钥和私钥,然后将公钥交给管理员gittest。git用户xiaoming将私钥保管好,后面需要用到。

2)在gittest管理员window电脑上,gittest管理员将xiaoming的公钥放置在第6步中的keydir目录下,将公钥重名为git用户名.pub(按照我生成密钥的方法,在公钥末尾有git用户名,暂时取名叫lenovo@xiaom)。

a、编辑gitosis.conf,增加项目test,添加参与这个项目的成员管理员和xiaoming。

b、进入gitosis-admin目录,在空白处右键git commit,出现如下对话框:

c、删除gitosis-admin目录,再在这个文件空白处,右键git clone,将仓库gitosis-admin下载下来(填写URL,由于之前填写过私钥地址,这次不用再次填写),可以看到之前修改的文件都改好了。

3)管理员在centos服务器上创建一个test项目的仓库并初始化。

----gittest用户

$ cd re*
$ mkdir test.git  //创建test仓库,命名需要和gitosis.conf文件中的项目名称一样
$ cd liu*
$ git init --bare //初始化仓库test
//出现如下信息,说明初始化成功
Initialized empty Git repository in /home/gittest/repositories/test.git/

4)管理员可以在自己的电脑上,新建一个文件夹,右键git clone,然后填写URL:gittest@服务器IP地址:test.git和添加自己的私钥(私钥与添加到服务器上的公钥是一对的,意思是要是同时生成的),会出现test的目录;xiaoming可以在自己的电脑上,新建一个文件夹,右键git clone,然后填写URL:gittest@服务器IP地址:test.git和添加自己的私钥(私钥与添加到服务器上的公钥是一对的,意思是要是同时生成的),会出现test的目录。管理员和xiaoming可以在test目录下上传和下载test项目的代码和相关文件。

至此,gitosis的服务端和客户端都配置好了。

在此感谢冉华给予我的帮助 。

  

  

转载于:https://www.cnblogs.com/liusx0303/p/9219312.html

centos下配置gitosis服务器相关推荐

  1. CentOS下配置webrtc服务器

    主要参考:Ubuntu下配置webrtc服务器 ------------------------------------------------ 原理介绍:<以下文字copy自上文> 房间 ...

  2. centos svn服务器端口配置文件,centos下配置svn服务器

    安装了lnmp的集成环境包,服务器倒是很快就安好了. 从官网下载一个SVN回来安装,刚开始因为下的svn是1.7的,但是他的支持包又是1.6的,结果编译不过,后来换成了 1.6的,编译安装无问题,不过 ...

  3. CentOS下的DNS服务器搭建

    CentOS下的DNS服务器搭建 实验环境:VMware workstation 10         centos 6.4 说明: DNS是计算机域名系统或域名解析服务器(Domain Name S ...

  4. CentOS下架设VNC服务器

    CentOS下架设VNC服务器 1.什么是VNC服务器? 百度百科: VNC (Virtual Network Computer)是虚拟网络计算机的缩写.它 是一款优秀的远程控制工具软件,由著名的 A ...

  5. linux(centOS)下搭建node服务器之一、 安装Node.js

    本例系统环境:腾讯云 CentOS 7.4 64位 一.找相应node版本,复制链接 1. 打开网址 http://nodejs.cn/download/; 2. ctrl+shift+i(打开开发者 ...

  6. 虚拟机linux ftp慢,虚拟机Linux下配置FTP服务器的方法

    虚拟机Linux下配置FTP服务器的方法 1.确保虚拟机系统与宿主系统是桥接设置,以方便连接. 2.在虚拟机系统中安装ftp服务器,我安装的是vsftpd服务器.由于安装的虚拟机系统CentOS 中已 ...

  7. CentOS下配置VNCServer,重启服务仍然生效

    CentOS下配置VNC Server,重启服务,配置仍然生效的方法: 本文前提:系统已安装好gnome桌面,如果没有请执行下面的命令安装即可. yum groupinstall "Desk ...

  8. centos oracle 服务自动启动,CentOS下配置Oracle 11gR2为系统服务自动启动

    CentOS下配置Oracle 11gR2为系统服务自动启动 CentOS下配置Oracle 11gR2为系统服务自动启动 为什么80%的码农都做不了架构师?>>> PS:在Wind ...

  9. linux vnc服务重启,CentOS下配置VNCServer,重启服务仍然生效

    CentOS下配置VNC Server,重启服务,配置仍然生效的方法: 本文前提:系统已安装好gnome桌面,如果没有请执行下面的命令安装即可. yum groupinstall "Desk ...

最新文章

  1. dbgridview内操作粘贴,复制,等量复制,增量复制
  2. linux从i2c读取变量,I2C子系统之__I2C_first_dynamic_bus_num变量的相关分析
  3. python 进度条_Python小程序系列——动态进度条(1)
  4. PAT A1065 A+B and C (64bit) (20 分)
  5. 播放图像有锯齿_反隔行操作
  6. a标签加入单击事件 屏蔽href跳转页面
  7. kmeans 算法_kmeans优化算法:二分Kmeans聚类算法
  8. java month_java11教程--类Month用法
  9. 中国数码相机镜头行业市场供需与战略研究报告
  10. 深度学习大神Hinton推翻自己30年的学术成果另造新世界
  11. shell 命令 --ps aux | grep
  12. maven全局配置文件settings.xml详解
  13. 【最大流】 HDU 3572 Task Schedule
  14. 南京超过广州,4 月程序员工资统计出炉,平均14596元
  15. selenium webdriver实战宝典 pdf_Selenium+webdriver爬虫技术实战之沃运维报表提取
  16. 大学生JAVA程序员周记,java程序员实习周记.docx
  17. [KALI] 开启ssh远程连接
  18. 开源机器人项目Hands Free
  19. 445端口是什么,怎么关闭?
  20. 基于移动端端vant使用ImagePreview 图片预览的使用的一些问题

热门文章

  1. Excel信息提取之二
  2. Redis 中的集合类型是怎么实现的?
  3. spring mvc xml格式输入输出
  4. Android中RatingBar的自定义效果
  5. Lucene.net多字段(Fields)、多索引目录(IndexSearcher)搜索
  6. Deep Ranking for Person Re-identification via Joint Representation Learning
  7. Ubuntu 12.10下配置Web服务器详细教程
  8. jQuery 样式操作||操作 css 方法/设置类样式方法
  9. ES6 模块化的基本语法——默认导出 与 默认导入、按需导出 与 按需导入、直接导入并执行模块代码
  10. JSplitPane