位置: 编程技术 - 正文

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安装教程)

  • 进项税额的计税基础是什么
  • 城建税及教育费附加怎么计算
  • 一键报税财务软件破解版
  • 啥是完税凭证
  • 医院这么开发票
  • 出口赠送客户怎么处理
  • 一般纳税人净利润如何计算
  • 进项税转出主要内容包括
  • 进口产品不付汇会造成什么
  • 商贸企业购进商品怎么做成本
  • 车间领用材料应填制什么凭证
  • 差旅费报销怎么做账
  • 事业单位利息收入
  • 预提返利的会计处理
  • 哪些票据可以冲销
  • 价外费用的会计和税务处理
  • 销售已作进项税转出的固定资产怎样缴税?
  • 金融机构计提减值准备
  • 个人出租房屋交税如何计算
  • 财务兼职怎么算工资
  • 原材料费用的分配
  • win10专业版虚拟内存怎么设置
  • 对账工作的主要内容为什么不包括账表核对
  • 巴蒂斯塔卡里
  • 如何使用定向流量
  • 公司支付的赔偿金要扣税吗
  • mysqli php
  • 苹果mac系统怎么更新最新版本
  • 自己给笔记本更换硬盘
  • php数组函数,选班长
  • 营业外收入怎么申报增值税
  • 合并财务报表抵消损益怎么理解
  • cookie验证和token验证的区别
  • 饲料企业经营范围
  • 收到现金货款存入银行会计分录
  • 委托加工物资验收入库的金额
  • php读取文件
  • 最好的ph计
  • php正则替换字符串
  • 搭建小技巧
  • ps快速选择工具抠图后怎么拉出来
  • 报关单的运费没填怎么办
  • 残保金补申报后处罚会自动取消吗
  • 企业所得税报表怎么更正
  • 在php中声明变量时,变量名称以什么符号开头
  • 支付员工工伤医疗费用怎么做账
  • 员工为公司垫付的钱会计分录
  • mongodb使用场景 简书
  • 农民工专户个税怎么申报
  • 企业所得税是哪种
  • 水泥贸易利润
  • 红字冲销怎么做账
  • 未开票收入如何计提增值税
  • 如何做好工程后期维保
  • 自产自用进项税额
  • 房地产企业如何结转成本
  • 处置长投其他权益变动要转损益吗
  • 企业内建立小企业属于哪个阶段
  • sql2008r2镜像
  • mysql数据加解密
  • macos sierra版本10.12.6升级
  • linux top命令详解内存过高查询
  • haozipsvc.exe是什么
  • win10 edge浏览器设置信任站点
  • linux删错文件
  • win10 rs4
  • 怎么使用linux命令
  • win7系统怎么设置浏览器主页
  • win7操作系统的主要功能
  • 怎么把喜欢的图片设置成电脑壁纸
  • html的基本语法规则
  • cocos2dx-3.x(三)、场景切换及可能产生的错误
  • cocos2dx开发的游戏有哪些
  • unity3d最新api
  • bootstrap与Jquery UI 按钮样式冲突的解决办法
  • js dom方法
  • Unity64 AStarPath 寻路失效 Bug解决 IOS64 IL2CPP - Bad date/time format in the zip file
  • jquery事件委托原理
  • Android自定义动画
  • android反编译smali
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设