位置: 编程技术 - 正文

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

  • 如何理解增值税中性特点
  • 单位卖二手车需要交什么税
  • 五月份有啥节日2020
  • 即征即退项目的进项税额不参与加计抵减
  • 增值税专用发票几个点
  • 外企餐补标准
  • 账实不符如何调平
  • 经济纠纷引发的刑事案件
  • 自产的产品无偿赠送职工
  • 小规模注销时盈余公积余额怎么处理
  • 公司注销固定资产交什么税
  • 营改增服务业税率
  • 纳税人和征税对象的区别
  • 保险公司如何计算车辆折旧
  • 应交税费应交增值税减免税款
  • 农产品税率2020
  • 土地使用税是由出租方还是承租方交
  • 增值普通发票税率怎么算
  • 营改增后如何纳税
  • 财务软件里面可以修改吗
  • 支付佣金费用没扣怎么办
  • 工会基金是扣个人还是扣企业的
  • 哪些项目可以在城镇开发边界外
  • 期末调汇会计分录
  • 实收资本或股本的账务处理
  • 增值税预缴税款表电子版下载
  • 为什么打开Win10虚拟器后一直在界面
  • 猜单词游戏代码
  • 摩洛哥首都拉巴特简介
  • 斯洛文尼亚nba球星是谁
  • 企业清算时
  • 谷歌插件下载网址
  • vue开发视频教程
  • php怎么加css
  • 简述资产负债表债务法
  • 小规模能取得专用发票吗
  • 推广费属于什么大类
  • 加计抵减退税的会计分录
  • 怎样从对公账号查询账单
  • 好用的微信小程序邮箱有哪些
  • BootStrap--selectpicker的使用
  • 支付版权使用费怎么记账
  • 无偿提供建筑服务缴纳增值税
  • mysql load local
  • 进口货物会计分录举例
  • 银行存款和其他应付款不平怎么处理
  • 个税汇算清缴是退税吗
  • 预收款不开票怎么处理
  • 交存超库存现金
  • 钱汇错了报警有用吗
  • 公司缴纳印花税如何缴纳
  • 进口料件内销的关税和增值税怎么计算
  • 分享一下相亲时碰见过哪些奇葩事
  • window10安装mysql5.7
  • mysql中日期格式
  • 为快捷方式建立快捷方式
  • mac 的 safari 浏览器
  • gitlab离线安装 linux
  • win8查看系统版本
  • win8.1开机自启项目在哪里
  • 教你在heroku云平台上部署Node.js应用
  • python数据结构教程
  • jquery获取表格一列的值
  • shell脚本mysql
  • 简述python语言
  • mongoose怎么用
  • 变量代码是什么
  • unity手柄圆盘
  • unity3d基本操作
  • jquery dom对象
  • python相关图片
  • 初步了解的英文
  • js tojsonstring
  • linux两个版本
  • jQuery+ajax实现实用的点赞插件代码
  • 1.6排量算大吗
  • 发票测试纸在哪里打印
  • 怎么在国税网站取消已申报的财务报表
  • 山东增值税普通发票查询
  • 地税是什么时候开始征收耕地的呢
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设