文档章节

在CentOS6.5搭建git服务器

hurrican01
 hurrican01
发布于 2017/07/22 23:52
字数 1349
阅读 31
收藏 2
点赞 0
评论 0

环境:

服务器 CentOS6.5 + git(version 2.8.0)

1.         安装git

   1)安装依赖包

    yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils-MakeMaker

   2)下装git源码

wget https://github.com/git/git/archive/v2.8.0.zip

   3)编译安装

       解压git源码到当前目录

      Unzip v2.8.0.zip        

      把git安装到/usr/local/git目录下

     make prefix=/usr/local/git all                 

     make prefix=/usr/local/git install

   4)修改环境变量

     vi /etc/profile

     export PATH=/usr/local/git/bin:$PATH

     source命令可以使配置立刻生效

     source /etc/profile

   5)查看git版本

     git --version 查看git版本,输出以下信息表示安装成功

    git version 2.8.0

   6)创建git用户(主要用来管理项目)

    查看git用户是否已存在,存在则换个帐号不存在则创建

    id git

    输出以下信息表示git用户不存在

    id: git:无此用户

    添加git用户

    useradd git

    设置git帐号对应的密码

    pwd 123

  7)服务器端创建 Git 测试仓库(设置~/data/git/gittest.git 为 Git 仓库)

   切换到git帐号

   su git

  cd ~

  mkdir -p data/git/gittest.git

  git init --bare data/git/gittest.git

  Initialized empty Git repository in /home/data/git/gittest.git/

  cd data/git/

 8)使用wind客户端链接git服务器

进入 Git Bash 命令行客户端,创建项目地址(设置在 d:/wamp64/www/gittest_gitbash)并进入:

dee@Lenovo-PC MINGW64 /d
$ cd wamp64/www

dee@Lenovo-PC MINGW64 /d/wamp64/www
$ mkdir gittest_gitbash

dee@Lenovo-PC MINGW64 /d/wamp64/www
$ cd gittest_gitbash

dee@Lenovo-PC MINGW64 /d/wamp64/www/gittest_gitbash
$

然后从 Linux Git 服务器上 clone 项目

$ git clone git@192.168.56.101:/home/data/gittest.git

当第一次连接到目标 Git 服务器时会得到一个提示:

The authenticity of host '192.168.56.101 (192.168.56.101)' can't be established.
RSA key fingerprint is SHA256:Ve6WV/SCA059EqoUOzbFoZdfmMh3B259nigfmvdadqQ.
Are you sure you want to continue connecting (yes/no)? 

选择 yes:

Warning: Permanently added '192.168.56.101' (RSA) to the list of known hosts.

此时 C:\Users\用户名\.ssh 下会多出一个文件 known_hosts,以后在这台电脑上再次连接目标 Git 服务器时不会再提示上面的语句。

后面提示要输入密码。

以上完成后表示git已经正式安装成功,但是这里有2个问题

1、客户端每次git链接都要输入密码操作起来非常麻烦

2、这里git链接输入的帐号是服务器上git用户的密码,如果一不小心暴露了服务器很容易被攻击。

居于以上2点考虑,这种方式链接不靠谱。因此我们需要安装gitolite来对git帐号进行管理

 

2.gitolite安装

1)使用git帐号登陆服务器

cd ~

2)下载gitolite

git clone https://github.com/sitaramc/gitolite

3)gitolite安装

创建bin目录并安装gitolite到bin目录($表示当前用户)

mkdir $HOME/bin

gitolite/install -to $HOME/bin

4)配置gitolite管理员

 cd ~

 用git用户生成公钥(注:如果你是接着上面一直做下来的,那么只需要输入cd ,然后回车,则就进入了该用户的目录,如果不是git用户,则需要输入su – git,来切换到git用户)

 ssh-keygen -t rsa

 修改.ssh/id_rsa.pub 为admin.pub(为什么要改成admin.pub 因为gitolite根据这个文件名来设立帐号.我这里用admin

 mv .ssh/id_rsa.pub admin.pub

5)使用管理员公钥安装gitolite(然后去/home/git/repositories 里面,可以看见仓库文件.gitolite-admin.git 和test.git 一个是管理仓库的,一个是测试用)

        $HOME/bin/gitolite setup -pk admin.pub

6)生成管理员管理仓库(不需要输密码)

      git clone git@127.0.0.1:gitolite-admin

进入仓库后可以看到conf 和keydir ,conf/gitolite.conf 是添加用户/仓库的配置, keydir 是放对应用户的公想·x钥.并且此时,admin.pub这个公钥可以删除了

7)添加新用户和新项目

先生成密钥(hurrican01为私钥,hurrican01.pub为公钥。私钥是windows客户服务用来免登录用的)

ssh-keygen -t rsa(命名为hurrican01和hurrican01.pub)

    修改 gitolite.conf

vi gitolite-admin/conf/gitolite.conf

这里是新增了一个hurrican01用户和一个user组

 

上面的配置含义是:

                      定义两个用户组: admin 和 user

                      定义两个版本库: gitolite-admin 和 project

                      用户admin 对 这两个版本库有(读 写 删除)RW+ 权限

                      user组对project 有 (读 写)RW 权限

也可按照格式,添加多个组,多个版本库

如有一个组中有多个用户,则以空格为分割。

把hurrican01.pub放在/home/git/gitolite-admin/keydir

*网上都说这时直接cmmit就可以,实际是不行的这时还需要设置authorized_keys

vi ~/.ssh/authorized_keys

然后再走提交流程这样才可以创建用户和项目

git add keydir/hurrican01.pub conf/gitolite.conf

 git commit -am "new project"

git push origin master

提交完后,查看管理仓库中多了一个haodi.git

这个时候,服务器已经搭建完毕了

3.window Git环境配置

复制hurrican01(私钥)文件到 C:\Users\Administrator\.ssh目录,新建config文件并填写对应的内容:

以下内容表示git服务器ip地址对应的帐号是hurrican01使用的私钥路径是 C:/Users/Administrator/.ssh/hurrican01(此路径用户可自行设置)

host  git服务器IP地址

user hurrican01

hostname  git服务器IP地址

port 22

identityfile  C:/Users/Administrator/.ssh/hurrican01

这时打开git Bash 输入git clone git@git服务器ip地址:/项目路径如果可以下载则表明设置成功

 

如果有什么安装疑问欢迎发消息到我的个人邮箱质询,只要有时间一定回复。个人的邮箱地址是:hurrican_ok@126.com

© 著作权归作者所有

共有 人打赏支持
hurrican01
粉丝 1
博文 16
码字总数 31085
作品 0
广州
搭建自己的git服务器

虽然国内外有很多git托管服务网站,但是有时候我们还是需要自己的git服务器用于托管一些私有项目,今天就来教大家搭建自己的git服务器 环境: 服务器腾讯云Ubuntu14.04 客户端:Win10 工具: x...

一个不想写代码的程序员
2017/11/10
0
0
jenkins持续集成环境搭建

持续集成的目的: 让我们每次更新了代码提交到 git 仓库后就自动运行构建新版本,自动部署 到测试环境,从而提高生产效率,告别重复的劳动 系统环境:CentOS6.5 、JDK SE 1.8.0_60 、Maven3.0.5、...

yacai1990
2016/07/17
0
0
centos6.5 安装 gitolite 最新版本,clone之后不能够push,求告诉解答

@红薯 你好,想跟你请教个问题: 在win7 32 下面安装 VMware 10.1; VMware 上面安装 centos6.5 gitolite 官方说明的软件环境都满足了 在服务器添加git用户和git用户组 mkdir -p /data/gitgr...

leeyi
2014/07/09
500
3
本地yum源搭建(包括httpd安装)

本地yum源搭建(包括httpd安装) 适用于服务器与外网隔离,或与外网连接速度慢,要使用yum安装某些包的情况。 CentOS本地源安装 1、下载CentOS的安装文件 从 http://vault.centos.org/ 下载与...

OttoWu
2016/12/23
35
0
CentOS6.5环境下搭建Apache httpd服务器

CentOS6.5环境下搭建Apache httpd服务器 前期准备: 1、CentOS6.5虚拟系统; 2、CentOS6.5 IP地址:192.168.2.99 3、虚拟系统能上外网 下面我们就开始配置: 第一步:安装 首先我们需要把Apa...

推荐码发放
05/06
0
0
CentOS 配置LNMP环境

Centos搭建PHP5.3.8+Nginx1.0.9+Mysql5.5.17 CentOS6.5搭建LNMP CentOS 6.4安装配置LNMP服务器(Nginx+PHP+MySQL) 注意:nginx安装之前,最好下载如下库...

IamOkay
2015/05/31
0
0
CentOS6.5搭建本地yum源(http方式) nginx

CentOS6.5搭建本地yum源(http方式) YUM主要用于自动升级、安装移除rpm软件包,它能自动查找并解决rpm包之间的依赖关系,要成功的使用YUM工具更新系统和软件,需要有一个包含各种rpm软件包的r...

lijunboy008
2017/07/06
0
0
gitlab 可以push和clone,可是网页上无法显示

采用centos6.5,按照网上的教程搭建gitlab。登陆gitlab网站后创建项目,进入下图 按照上述过程push,显示/home/git/root/demo2.git is not repository.然后在网上查询资料得到下面方法 先在 ...

菜鸟上road
2015/12/21
888
2
浅谈:node快速搭建个人博客

接触web开发不知不觉也有one year了,虽然每天的工作繁重,但是一直有个信念:做个属于自己的网站!!比较容易入手的项目当然属于个人博客了!在这里分享一下我的心得: 1.博客模板--ghost 提...

mosaic101
2016/01/06
1K
0
CentOS环境下使用GIT基于Nginx的私服搭建全过程

阅读本文前你必须预先装好CentOS并且已经安装和配置好Nginx了。 安装GIT私服套件 安装centos6.5-centos7.0 安装nginx yum install -y?git gitweb spawn-fcgi?fcgi-devel?fcgi 以上步骤执行完...

lifetragedy
2016/06/13
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

gRPC学习笔记

gRPC编程流程 1. proto文件定义 proto文件用于定义需要通过gRPC生成的接口,可以理解为接口定义文档 2. 通过构建工具生成服务基类代码-Maven或Gradle 3. 服务端开发 服务端实现类须实现通过构...

OSC_fly
8分钟前
0
0
Docker Mac (三) Dockerfile 及命令

Dockerfile 最近学习docker的时候,遇到一件怪事,关于docker镜像可能会被破坏,还不知道它会有此措施 所以需要了解构建Dockerfile的正确方法 Dockerfile是由一系列命令和参数构成的脚本,这些命...

___大侠
35分钟前
0
0
NetCat Tutorials

Hacking with Netcat part 1: The Basics Hacking with Netcat part 2: Bind and reverse shells Hacking with Netcat part 3: Advanced Techniques 10 Introduction to Netcat - pdf NetCat......

zungyiu
35分钟前
0
0
Android Studio+NDK+Cmake 移植FFmpeg-4.0.2命令行工具

一、编译 参考大神的帖子,亲测一次编译成功:https://blog.csdn.net/bobcat_kay/article/details/80889398 鉴于以前查文档的经验,这里附上编写例子的时间:2018年7月22日 我用的是ubantu,...

她叫我小渝
35分钟前
0
0
mysql创建数据库

登录MYSQL mysql -u root -p 脚本创建数据库WeChat,并制定默认的字符集是utf8mb4。 CREATE DATABASE Wechat DEFAULT CHARSET utf8mb4 COLLATE utf8mb4_general_ci; 授权 grant all......

niithub
49分钟前
0
0
svn: Unable to connect to a repository URL 的解决方案

错误图示: 解决办法:清除本地保存的授权信息; 1:右键点击本地文件夹,选择设置; TortoiseSVN -> Settings 2:在弹出的对话框中选择 Saved Data, 右侧选择:授权地方清理所有。 然后点确...

宁哥实战课堂
今天
1
0
sleep与wait的区别

Thread.sleep(XXX)方法消耗CPU吗? 这个知识点是我之前认识一直有错误的一个知识点,在我以前的认识里面,我一直认为Thread.sleep(1000)的这一秒钟的时间内,线程的休眠是一直占用着CPU的时间...

码代码的小司机
今天
1
0
20位活跃在Github上的国内技术大牛 leij 何小鹏 亚信

本文列举了20位在Github上非常活跃的国内大牛,看看其中是不是很多熟悉的面孔? 1. lifesinger(玉伯) Github主页: https://github.com/lifesinger 微博:@ 玉伯也叫射雕 玉伯(王保平),...

海博1600
今天
1
0
Mybatis收集配置

一、Mybatis取Clob数据 1、Mapper.xml配置 <resultMap type="com.test.User" id="user"> <result column="id" property="id"/> <result column="json_data" property="jsonData" ......

星痕2018
今天
1
0
centos7设置以多用户模式启动

1、旧版本linux系统修改inittab文件,在新版本执行vi /etc/inittab 会有以下提示 # inittab is no longer used when using systemd. # # ADDING CONFIGURATION HERE WILL HAVE NO EFFECT ON......

haha360
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部