位置: 编程技术 - 正文

CentOS 6.3下使用Gitosis安装搭建Git Server教程(centos gogs)

编辑:rootadmin

推荐整理分享CentOS 6.3下使用Gitosis安装搭建Git Server教程(centos gogs),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:centos w,centos go,centos工具,centos工具,centos gogs,centos6怎么用,centos go,centos gogs,内容如对您有帮助,希望把文章链接给更多的朋友!

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 xGit: git-1.7.1Gitosis: GitosisGitweb: 1.7.1-3 OpenSSH Server: openssh-server-5.3p1apache: httpd-2.4.4python-setuptools: python-setuptools-0.6.-3 Git server(centos6.3 x): node2.example.comGit client(centos6.3 x): node1.example.com

server端配置:

一.关闭iptables和SELINUX

复制代码代码如下:# service iptables stop# setenforce 0# vi /etc/sysconfig/selinux---------------SELINUX=disabled---------------

二.同步时间

复制代码代码如下:# ntpdate cn.pool.ntp.org

三.安装apache

传送门: yum install openssh-server -y2.修改ssh服务端配置:复制代码代码如下:# vi /etc/ssh/sshd_config—————————————————————————————— Port # 修改成你想要的登陆端口 PermitRootLogin no # 禁止root用户登陆 StrictModes yes # 检查密钥的用户和权限是否正确,默认打开的 RSAAuthentication yes # 启用 RSA 认证 PubkeyAuthentication yes # 启用公钥认证 PasswordAuthentication yes # 启用密码认证,默认是打开的 ServerKeyBits # 修改后变为此状态,将ServerKey强度改为比特 PermitEmptyPasswords no # 修改后变为此状态,禁止空密码进行登录——————————————————————————————3.重启服务:复制代码代码如下:# /etc/init.d/sshd restart

五.安装Git

复制代码代码如下:# yum install git-core -y

六.安装Gitosis

1.安装Gitosis依赖python-setuptools包复制代码代码如下:# yum install python-setuptools -y

2.安装Gitosis复制代码代码如下:# cd ~# mkdir src# cd src # git clone cd gitosis# python setup.py install

3.为gitosis创建系统用户 复制代码代码如下:# useradd -m git# passwd git

4. 运行gitosis

CentOS 6.3下使用Gitosis安装搭建Git Server教程(centos gogs)

(1).将管理员生成的公钥上传或拷贝到服务器上。这里的公钥需要在git服务器管理员下使用ssh-keygen命令来创建复制代码代码如下:# su - git保证web页面有权限显示该仓库内容复制代码代码如下:# chmod -R /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 Aug : gitosisdrwxr-xr-x 4 git git Aug : repositories---------------------------------------------------------------

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

复制代码代码如下:# exit

(4).配置权限

如果想要别人能够clone gitosis-admin.git,需要执行以下操作:复制代码代码如下:# chmod /home/git/repositories/gitosis-admin.git/hooks/post-update至此,gitosis的安装工作已完成,其相关配置可以有管理员来操作,然后再提交到服务器上.

(5)现在可以试一下用初始化 Gitosis 的公钥的拥有者身份 SSH 登录服务器,应该会看到类似下面这样:复制代码代码如下:# su - git$ ssh git@.0.0.1------------------------------------------------PTY allocation request failed on channel 0ERROR:gitosis.serve.main:Need SSH_ORIGINAL_COMMAND in environment. Connection to gitserver closed.------------------------------------------------说明 Gitosis 认出了该用户的身份,但由于没有运行任何 Git 命令,所以它切断了连接。那么,现在运行一个实际的 Git 命令 — 克隆 Gitosis 的控制仓库:在你本地计算机上克隆git仓库复制代码代码如下:# cd /tmp# git clone git@gitserver:gitosis-admin.git这会得到一个名为 gitosis-admin 的工作目录,主要由两部分组成:红色为git仓库配置,蓝色为实际仓库保存的文件复制代码代码如下:# cd gitosis-admin# ll -a----------------------------------------------------------total drwxr-xr-x 4 git git Aug : .drwxr-xr-x 4 git git Aug : ..drwxr-xr-x 8 git git Aug : .git-rwxr-xr-x 1 git git Aug : gitosis.confdrwxr-xr-x 2 git git Aug : keydir-----------------------------------------------------------以上操作相当于,系统git用户初始化并成为gitosis管理员,且利用其管理员权限将gitosis-admin仓库clone到本地.

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

1. 用户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 /tmp2. 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-adminmembers = git@node2.example.com------------------------------------------------# ls keydir/-------------------------git@node2.example.com.pub-------------------------# cp /tmp/id_rsa.pub keydir/john.pub# vi gitosis.conf————————————————————————————————————[gitosis][group gitosis-admin]writable = gitosis-adminmembers = git@node2.example.com[group test]writable = testmembers = git@node2.example.com john————————————————————————————————————# git add .# git commit -am "add member john and project foo"# git push

3. 用户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

4. 用户 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

整个过程分为:

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

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

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

七.安装gitweb

1.首先我们需要Git的源码,其中带有GitWeb,并能生成定制的CGI脚本:复制代码代码如下:# git clone cd git/# make GITWEB_PROJECTROOT="/home/git/repositories" prefix=/usr gitweb # cp -rf gitweb /usr/local/apache2/htdocs/注: 通过指定 GITWEB_PROJECTROOT 变量告诉编译命令 Git 仓库的位置

2.设置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 添加如下配置:复制代码代码如下:——————————————————————————————————————————<VirtualHost *:> 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>——————————————————————————————————————————(4).安装Time/HiRes.pm perl模块首次打开web页面报Can't locate Time/HiRes.pm in @INC ….错误解决方法:复制代码代码如下:# 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页面

CentOS 6.3下安装部署CHEF环境教程 一.前言:初识Chef,我们可以先了解一下DevOps运动

CentOS安装TortoiseSVN 客户端 一、CentOS安装TortoiseSVN复制代码代码如下:yuminstall-ysubversion二、SVN客户端命令1、查看帮助命令:svnhelp启动服务使用命令svnserve启动服务复制代码代码如下

CentOS系统使用配置文件修改IP地址详细教程 在VM虚拟机安装的centos系统,默认使用的是dhcp自动获取ip地址的方式,而我自己想用这个centos在局域网内搭建一个小型演示站点,这个自动获取ip地址的

标签: centos gogs

本文链接地址:https://www.jiuchutong.com/biancheng/353775.html 转载请保留说明!

上一篇:Linux操作系统 CentOS6.5开机自动挂载硬盘 (LINUX操作系统的主要组成部分有)

下一篇:CentOS 6.3下安装部署CHEF环境教程(centos 6.5安装教程)

  • 车船税可以免掉吗
  • 研发支出的项目叫什么
  • 商业企业能否计税
  • 年末结转增值税之后增值税有余额嘛
  • 个体户购买发票需要什么资料
  • 确认委托代销收入会计分录
  • 收取质保金会计处理
  • 发票开具税收分类是什么意思?
  • 虚开增值税发票具体操作是怎样的?
  • 企业所得税季度申报填写示例
  • 2017年金税盘服务费已全额减免,勾选系统怎么处理
  • 个税起征点是多少啊
  • 个税什么情况可以不用汇算
  • 一般纳税人具备的资格需要哪些条件
  • 母公司并购子公司需要股东会决议吗
  • 核销外管证需要什么手续
  • 总账会计需要做账吗
  • 应收账款抹零会计分录
  • 幼儿园开发成本
  • 非金融类企业的货币资金主要包括哪些内容?
  • 计提折旧会计分录的借方不可能是
  • 苹果mac切换桌面快捷键
  • 鸿蒙系统桌面如何设置
  • 补交去年的企业所得税怎么做账务处理
  • 公司发生的业务有哪些
  • 远程主机强迫关闭了现有连接我的世界
  • 简易征收的分录
  • 发票开出后只收到部分款怎么处理?
  • 资产减值损失的借贷方向
  • 鸿蒙系统怎么退出开发者选项
  • 对其他公司的建议
  • vue错误提示
  • php获取访问用户的ip
  • 在代开发票时已经预缴个人所得税了,怎么处理?
  • php中文出现乱码
  • 支票沾水
  • 前端不使用明文密码方案
  • php如何post
  • 增值税农产品免税是哪一条
  • 销项和进项税额还需要月底转出么
  • 企业所得税品目应纳税所得额未申报
  • 利息收入做账
  • 退社保基金怎么办理
  • Mongodb中MapReduce实现数据聚合方法详解
  • 进项税额抵减额怎么算
  • 年终汇算清缴所得税计算器
  • SQL Server 2008 数据库有哪些版本?
  • 集团公司一般怎么称呼
  • 小规模纳税人减半征收的六税两费
  • 固定资产盘点盘什么
  • 纳税人缴纳的税款叫做什么
  • 电话布线使用网络
  • 公司买车抵税最新政策2022购置税减半享受不?
  • 低值易耗品摊销表格
  • 个人生产经营所得
  • 代收代缴的水电费怎么开票
  • 员工出差坐火车怎么处理
  • 生产车间制造产品领用材料45000元,领用车间一半消耗
  • 建筑工程社会实践报告
  • 未使用和未投入使用
  • 高新技术企业每年需要多少专利
  • windowxp怎么改ip地址
  • w7系统删除所有东西
  • mac os 删除
  • 老旧的诗琴五个琴谱大全
  • windows8设置
  • 删除同步中心图标
  • 使用JQuery实现Ctrl+Enter提交表单的方法
  • ubuntu系统怎么安装
  • node.js jquery
  • android系统架构图
  • python爬虫入门教程
  • opengl中点画圆算法
  • css使用教程
  • 我置顶你也只顶你
  • 动态生成script
  • 广东税务app申报不小心点到了不再提示
  • 2023年印花税税目表
  • 房屋维修税率是多少
  • 遏制新增
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设