位置: 编程技术 - 正文

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

  • 小规模免增值税是普票还是专票
  • 个体工商户税务申报一年几次
  • 网上申报中月平均工资怎么计算
  • 开业前所有费用叫做什么
  • 明明申报了为什么显示没有申报
  • 纳税申报方式如何更改
  • 石油天然气管道保护法
  • 随意变更会计处理方法违背了
  • 附加税减免税会计处理怎么做?
  • 处理报废的固定资产
  • 调增教育经费如何做账
  • 企业注销后资产如何处置
  • 部队属于企事业单位吗
  • 堤围费是什么意思
  • 营改增后自产产品用于在建工程
  • 农产品增值税核定扣除管理建议
  • windows10无线网卡怎么连接无线网
  • 工程用的东西有什么
  • 本月未认证的怎么处理
  • 购买现金支票的工本费计入什么科目
  • 外贸收汇怎么处理
  • wcu.exe是什么
  • mysql-relay-bin
  • (Select)解决:Element-ui 中 Select 选择器下拉框样式及输入框样式的修改问题(背景色透明与悬停背景色变化与下拉框边距变化等操作)
  • 职业病治疗费用谁承担
  • 电脑方案表格
  • 应收罚款收入
  • Thinkphp+smarty+uploadify实现无刷新上传
  • 以前年度收入如何确认收入
  • 取得企业债券利息为什么要交个人所得税
  • yolov5解析
  • java本地缓存框架有哪些
  • php遍历文件夹
  • network python
  • 即插即用系统
  • CV攻城狮入门VIT(vision transformer)之旅——VIT原理详解篇
  • window12最新系统
  • 固定资产月末怎么结转
  • python 远程控制
  • 机关单位差旅费
  • 企业员工福利包括哪些内容
  • 一般纳税人购销合同印花税减免政策
  • 往来账款应该怎么记账
  • 股权投资所得是什么
  • 企业对外借款计入什么科目
  • 公司购入的财务会计分录
  • 土地违约金的法律规定
  • 进项转出的原因是什么
  • 虚增利润怎么调整
  • 个人怎么缴纳五险一金
  • 会计账簿按用途分类分为什么
  • linux上mysql安装详细教程
  • xp电脑显示屏显示不全
  • linux如何挂载iso文件
  • linux ubuntu教程
  • Win7系统设置屏保密码
  • xp电脑注册表怎么打开
  • win7怎么设置网速限制
  • centos7安装yum报错
  • win10右下角功能列表不见了
  • win7找回删除的文件
  • win7开机提示由于启动计算机时出现页面文件
  • win7系统开机登录不了怎么修复
  • ie11 for win8
  • ExtJs3.0中Store添加 baseParams 的Bug
  • 常用adb命令大全
  • 模拟监控app
  • 检测输入条件的各种组合
  • bat批处理脚本教程
  • javascript对象的属性和方法
  • css图片垂直居中对齐
  • android 蓝牙 驱动 适配 sdio rk
  • jquery 表格插件
  • 怎么在晋江查找观看记录
  • 北京社保退保手续办理
  • 煤炭行业的税负率是多少合适
  • 税务局是什么单位类型
  • 蚊香税率是多少
  • 上海市税务局的电话
  • 买车没有按时交车怎么办
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设