返回顶部
首页 > 资讯 > 精选 >如何在CentOS 6.3下使用Gitosis安装搭建Git Server
  • 147
分享到

如何在CentOS 6.3下使用Gitosis安装搭建Git Server

2023-06-10 10:06:11 147人浏览 安东尼
摘要

本篇内容介绍了“如何在Centos 6.3下使用gitosis安装搭建Git Server”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Gi

本篇内容介绍了“如何在Centos 6.3下使用gitosis安装搭建Git Server”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

Git作为一个分布式的版本控制系统,使用git的时候,一般和服务器通讯使用的是ssh协议,用ssh的主要优点是速度快(传输前数据会先压缩,比Http快),安全,方便读写。
 
客户端通过ssh访问服务器端的验证方式一般有两种,一种是用户名密码的方式,一种是使用公私钥认证的方式. 使用公私钥的方式比较方便,无需每次登录输入密码。

某个受信任的客户端的公钥会被设置在服务器端的 ~/.ssh/authorized_keys文件中,有关此文件的格式可以参见 sshd的用户手册 man sshd . authorized_keys有个比较厉害的功能是 支持 command参数,使得每次用户使用此公钥进行验证的时候执行此后面的命令.这样就可以做一些逻辑处理了.

一般git库的管理需要权限控制,如何方便简单的进行库的权限管理呢? authorized_keys是一个思路,指定特定command参数,每次验证好用户后首先执行相关逻辑,检测当前用户是否具有某个权限。 所以便有了gitosis,与其说gitosis是一个git权限管理系统,还不如说它是一个authorized_keys文件管理器.

解决方案:

环境部署

操作系统:              centos6.3 x64
Git:                         git-1.7.1
Gitosis:                   Gitosis
GitWEB:                   1.7.1-3        
OpenSSH Server:     openssh-server-5.3p1
apache:                  httpd-2.4.4
python-setuptools:   Python-setuptools-0.6.10-3
        
Git server(centos6.3 x64): node2.example.com
Git client(centos6.3 x64): node1.example.com

server端配置:

一.关闭iptables和SELINUX

代码如下:


# service iptables stop
# setenforce 0
# vi /etc/sysconfig/selinux
---------------
SELINUX=disabled
---------------

二.同步时间

代码如下:


# ntpdate cn.pool.ntp.org

三.安装apache

传送门:https://www.yisu.com/article/54969.htm

四.安装OpenSSH

yum安装OpenSSH:

代码如下:


# yum install openssh-server -y


2.修改ssh服务端配置:

代码如下:


# vi /etc/ssh/sshd_config
——————————————————————————————
  Port 22 # 修改成你想要的登陆端口
  PermitRootLogin no # 禁止root用户登陆
  StrictModes yes # 检查密钥的用户和权限是否正确,默认打开的
  RSAAuthentication yes # 启用 RSA 认证
  PubkeyAuthentication yes # 启用公钥认证
  PassWordAuthentication yes # 启用密码认证,默认是打开的
  ServerKeyBits 1024 # 修改后变为此状态,将ServerKey强度改为1024比特
 PermitEmptyPasswords no # 修改后变为此状态,禁止空密码进行登录
——————————————————————————————


3.重启服务:

代码如下:


# /etc/init.d/sshd restart

五.安装Git

代码如下:


# yum install git-core -y

六.安装Gitosis

安装Gitosis依赖python-setuptools包

代码如下:


# yum install python-setuptools -y

安装Gitosis

代码如下:


# cd ~
# mkdir src
# cd src
# git clone https://GitHub.com/tv42/gitosis.git
# cd gitosis
# python setup.py install

为gitosis创建系统用户

代码如下:


# useradd -m git
# passwd git

运行gitosis

(1).将管理员生成的公钥上传或拷贝到服务器上。这里的公钥需要在git服务器管理员下使用ssh-keygen命令来创建

代码如下:


# su - git


保证web页面有权限显示该仓库内容

代码如下:


# chmod -R 755 /home/git
# ssh-keygen -t rsa
# cp ~/.ssh/id_rsa.pub /tmp

(2).初始化gitosis

进入到拷贝过来的id_rsa.pub所在目录

代码如下:


# cd /tmp
# gitosis-init < id_rsa.pub


此时,会在/home/git目录下生成gitosis仓库和配置目录

代码如下:


# cd /home/git
# ll
----------------------------------------------------------------
drwxr-xr-x 2 git git 4096 Aug 12 13:39 gitosis
drwxr-xr-x 4 git git 4096 Aug 12 13:39 repositories
---------------------------------------------------------------

(3).切换回当前(root)用户

代码如下:


# exit

(4).配置权限

如果想要别人能够clone gitosis-admin.git,需要执行以下操作:

代码如下:


# chmod 755 /home/git/repositories/gitosis-admin.git/hooks/post-update


至此,gitosis的安装工作已完成,其相关配置可以有管理员来操作,然后再提交到服务器上.

(5)现在可以试一下用初始化 Gitosis 的公钥的拥有者身份 SSH 登录服务器,应该会看到类似下面这样:

代码如下:


# su - git
$ ssh git@127.0.0.1
------------------------------------------------
PTY allocation request failed on channel 0
ERROR:gitosis.serve.main:Need SSH_ORIGINAL_COMMAND in environment.
 Connection to gitserver closed.
------------------------------------------------


说明 Gitosis 认出了该用户的身份,但由于没有运行任何 Git 命令,所以它切断了连接。那么,现在运行一个实际的 Git 命令 &mdash; 克隆 Gitosis 的控制仓库:
在你本地计算机上克隆git仓库

代码如下:


# cd /tmp
# git clone git@gitserver:gitosis-admin.git


这会得到一个名为 gitosis-admin 的工作目录,主要由两部分组成:
红色为git仓库配置,蓝色为实际仓库保存的文件

代码如下:


# cd gitosis-admin
# ll -a
----------------------------------------------------------
total 20
drwxr-xr-x 4 git git 4096 Aug 12 13:21 .
drwxr-xr-x 4 git git 4096 Aug 12 13:23 ..
drwxr-xr-x 8 git git 4096 Aug 12 13:22 .git
-rwxr-xr-x 1 git git  157 Aug 12 13:21 gitosis.conf
drwxr-xr-x 2 git git 4096 Aug 12 13:20 keydir
-----------------------------------------------------------


以上操作相当于,系统git用户初始化并成为gitosis管理员,且利用其管理员权限将gitosis-admin仓库clone到本地.

添加本地用户john和仓库test到gitosis,并和管理员git合作管理gitosis

用户john添加并发送id_rsa.pub给git

代码如下:


# su -
# useradd john & passwd john
# su - john
# ssh-keygen -t rsa
-----------------------------------------------------------
Generating public/private rsa key pair.
Enter file in which to save the key (/home/john/.ssh/id_rsa):
Created directory '/home/john/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/john/.ssh/id_rsa.
Your public key has been saved in /home/john/.ssh/id_rsa.pub.
-----------------------------------------------------------
# cp /home/john/.ssh/id_rsa.pub /tmp


2. gitosis管理员git分配john权限

代码如下:


# su - git
# mkdir projects
# cd ~/projects
# git clone git@node2.example.com:gitosis-admin
# cd gitosis-admin
# cat gitosis.conf
------------------------------------------------
[gitosis]
[group gitosis-admin]
writable = gitosis-admin
members = git@node2.example.com
------------------------------------------------
# ls keydir/
-------------------------
git@node2.example.com.pub
-------------------------
# cp /tmp/id_rsa.pub keydir/john.pub
# vi gitosis.conf
&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;
[gitosis]
[group gitosis-admin]
writable = gitosis-admin
members = git@node2.example.com
[group test]
writable = test
members = git@node2.example.com john
&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;
# git add .
# git commit -am "add member john and project foo"
# git push

用户git添加项目test

代码如下:


# su - git
# cd ~/projects
# mkdir test
# cd test
# git init
# echo "Hello World." > hello.txt
# git add hello.txt
# git commit -am 'first commit'
# git remote add origin git@node2.example.com:test.git
# git push origin master

用户 john clone test并修改hello.txt

代码如下:


# su - john
# git clone git@node2.example.com:test.git
# cd test
# date >> hello.txt
# git commit -am 'add time to hello.txt' && git push

整个过程分为:

通过修改gitosis-admin管理gitosis用户权限,需要clone到本地,然后修改配置文件,最后add push将结果推送到远程实现权限修改.

添加系统用户,生成该用户公钥,并将其复制到keydir下,实现该用户有权限进行git等相关操作.

登陆该用户账户进行git相关操作,修改完后commit,push到中服务器即可完成仓库权限配置.

七.安装gitweb

首先我们需要Git的源码,其中带有GitWeb,并能生成定制的CGI脚本:

代码如下:


# git clone git://git.kernel.org/pub/scm/git/git.git
# cd git/
# make GITWEB_PROJECTROOT="/home/git/repositories" prefix=/usr gitweb      
# cp -rf gitweb /usr/local/apache2/htdocs/


注: 通过指定 GITWEB_PROJECTROOT 变量告诉编译命令 Git 仓库的位置

设置Apache以CGI方式运行该脚本,并添加一个VirtualHost配置:

(1).加载apache的vhost配置文件

代码如下:


# vi /usr/local/apache2/conf/httpd.conf


搜索包含httpd-vhosts的行,并去掉该行注释.
(2).加载cgid模块,使其支持perl语言.

代码如下:


# vi /usr/local/apache2/conf/httpd.conf


搜索包含mod_cgid.so的行,并去掉该行注释.
(3).配置VirtualHost

代码如下:


# vi /usr/local/apache2/conf/extra/httpd-vhosts.conf


添加如下配置:

代码如下:


&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;
<VirtualHost *:80>
   ServerName git.example.com
   DocumentRoot /usr/local/apache2/htdocs/gitweb
   <Directory /usr/local/apache2/htdocs/gitweb>
       Options +ExecCGI
       AllowOverride All
       order allow,deny
       Allow from all
       AddHandler cgi-script cgi pl
       DirectoryIndex gitweb.cgi
   </Directory>
</VirtualHost>
&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;


(4).安装Time/HiRes.pm perl模块
首次打开web页面报Can't locate Time/HiRes.pm in @INC &hellip;.错误
解决方法:

代码如下:


# yum install perl-devel perl-CPAN -y
# perl -MCPAN -e shell
cpan[2]> install Time::HiRes
cpan[3]> exit


(5).重启apache服务

代码如下:


# /usr/local/apache2/bin/apachectl restart


(6).修改本机HOST,并打开gitweb页面
http://git.example.com

如何在CentOS 6.3下使用Gitosis安装搭建Git Server如何在CentOS 6.3下使用Gitosis安装搭建Git Server

如何在CentOS 6.3下使用Gitosis安装搭建Git Server

如何在CentOS 6.3下使用Gitosis安装搭建Git Server

“如何在CentOS 6.3下使用Gitosis安装搭建Git Server”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

--结束END--

本文标题: 如何在CentOS 6.3下使用Gitosis安装搭建Git Server

本文链接: https://lsjlt.com/news/260068.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 如何在CentOS 6.3下使用Gitosis安装搭建Git Server
    本篇内容介绍了“如何在CentOS 6.3下使用Gitosis安装搭建Git Server”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Gi...
    99+
    2023-06-10
  • 如何在CentOS上安装和使用Git
    概述Git是一款分布式版本控制工具,被广泛应用于软件开发过程中。CentOS是一种流行的Linux操作系统。本文将介绍如何在CentOS上安装和使用Git。步骤一:安装Git在CentOS上安装Git非常容易。只需打开终端,键入以下命令:s...
    99+
    2023-10-22
  • 如何在CentOS 7上搭建Git
    CentOS 7是一种开源的操作系统,在业界的服务器领域非常流行。而Git是一种广泛使用的版本控制系统,它可以让我们轻松管理代码库。本文将介绍如何在CentOS 7上搭建Git,以便您可以管理您的代码库并进行版本控制。步骤一:安装Git在C...
    99+
    2023-10-22
  • 如何安装与使用cenos 6.3
    本篇文章为大家展示了如何安装与使用cenos 6.3,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。sudo vim /etc/yum.repos.d/CentOS-Base.repo 代码如下:# ...
    99+
    2023-06-10
  • 如何在CentOS下使用yum安装xen 4.2.
    本篇内容主要讲解“如何在CentOS下使用yum安装xen 4.2.”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何在CentOS下使用yum安装xen 4.2.”吧!1.下载kernel-x...
    99+
    2023-06-10
  • Linux下如何安装使用git
    这篇文章主要为大家展示了Linux下如何安装使用git,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带大家一起来研究并学习一下“Linux下如何安装使用git”这篇文章吧。什么是Linux系统Linux是一种免费使用和自由传...
    99+
    2023-06-06
  • CentOS下Git服务器如何搭建与维护
    在CentOS下搭建Git服务器需要安装Git软件包,并配置SSH密钥认证以确保安全访问。以下是在CentOS上搭建和维护Git服务...
    99+
    2024-05-09
    CentOS Git
  • 如何在linux CentOS中安装Percona Server
    这篇文章给大家分享的是在linux CentOS中安装Percona Server的详细安装教程,相信大部分人都还不知道怎么安装,为了让大家学会,给大家总结了以下内容,话不多说,一起往下看吧。Percona...
    99+
    2024-04-02
  • 怎么在CentOS上安装和使用Git
    今天小编给大家分享一下怎么在CentOS上安装和使用Git的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。步骤一:安装Git在...
    99+
    2023-07-05
  • CentOS 7.5下FFmpeg如何安装使用
    小编给大家分享一下CentOS 7.5下FFmpeg如何安装使用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!FFmpeg是一套采用LGPL或GPL许可证的开源计...
    99+
    2023-06-28
  • 如何安装CentOS系统上搭建Git版本控制服务器
    这篇文章主要介绍“如何安装CentOS系统上搭建Git版本控制服务器”,在日常操作中,相信很多人在如何安装CentOS系统上搭建Git版本控制服务器问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何安装Cen...
    99+
    2023-06-10
  • 如何在CentOS 6.5系统中搭建Git服务器
    Git是一个开源的分布式版本控制系统,被广泛应用于各种软件开发项目中。在CentOS 6.5系统中搭建Git服务器能让团队更好地协作开发。下面我将详细介绍如何在CentOS 6.5系统中搭建Git服务器。步骤一:安装Git在CentOS 6...
    99+
    2023-10-22
  • 如何在centos中安装VMware Server 虚拟机
    这篇文章给大家介绍如何在centos中安装VMware Server 虚拟机,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。1、到VMware官网上下载安装包,注册免费Licensing https://www.vmwa...
    99+
    2023-06-10
  • 如何在CentOS 6.2下搭建Web服务器
    如何在CentOS 6.2下搭建Web服务器,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。Centos 6.2下搭建web服务器如今,Linux在Web应用越来越广,许多企...
    99+
    2023-06-16
  • Linux下Hadoop 2.7.3如何安装搭建
    这篇文章将为大家详细讲解有关Linux下Hadoop 2.7.3如何安装搭建,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。Linux Hadoop 2.7.3 安装搭建Hadoop实现了一个分布...
    99+
    2023-06-21
  • 如何在CentOS系统下安装scikit-learn
    这篇文章主要介绍“如何在CentOS系统下安装scikit-learn”,在日常操作中,相信很多人在如何在CentOS系统下安装scikit-learn问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何在Ce...
    99+
    2023-06-10
  • 如何在CentOS中安装Git版本控制工具
    要在CentOS中安装Git版本控制工具,您可以按照以下步骤进行操作: 打开终端,并使用以下命令更新系统软件包: sudo yu...
    99+
    2024-04-02
  • 如何在CentOS系统下安装Puppet和Puppet Foreman
    这篇文章主要讲解了“如何在CentOS系统下安装Puppet和Puppet Foreman”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何在CentOS系统下安装Puppet和Puppet...
    99+
    2023-06-10
  • CentOS如何安装和使用curl
    这篇文章主要介绍CentOS如何安装和使用curl,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!curl是一个非常实用的、用来与服务器之间传输数据的工具;支持的协议包括DICT, FILE, FTP, FTPS等等,...
    99+
    2023-06-28
  • Mac下如何安装和搭建Homestead 2.0环境
    这篇文章主要介绍“Mac下如何安装和搭建Homestead 2.0环境”,在日常操作中,相信很多人在Mac下如何安装和搭建Homestead 2.0环境问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Mac下如...
    99+
    2023-06-22
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作