位置: 编程技术 - 正文

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

  • 房产税应该怎么申报
  • 小规模定额征收是怎样
  • 无法支付其他应付款说明
  • 免抵退税额如何填报
  • 不征税发票能报税吗
  • 私人企业利润怎么分配?
  • 其他应收款账目
  • 资产处置收益对应科目
  • 可供出售金融资产新准则叫什么
  • 小规模纳税人开普票免税
  • 房屋估价入账需要计算什么税款?
  • 在建工程安装工程包括
  • 印花税购销合同和买卖合同有什么区别
  • 增值税不征税收入的三个条件
  • 航天信息300元是什么费用
  • 所得税除以利润总额是稳定性评价指标吗
  • 土地的增值税进项能否抵扣
  • 残保金退回属于政府补助吗
  • 完税证明已开回怎么处理
  • 劳动报酬个人所得税由扣缴义务人预扣预缴
  • 技术发明案例
  • 库存商品淘汰报告模板
  • 税务师如何办理入会
  • 如何在Excel中添加筛选项
  • mac桌面的文件夹怎么换到别的地方
  • windows11ie
  • 房地产会计工资一般多少
  • 建筑公司收到工程款需要交哪些税
  • 存货退回账务处理
  • 公司账户转账到出纳个人账户
  • PHP:preg_last_error()的用法_PCRE正则函数
  • 经济业务原始凭证分录
  • 笔记本电脑盖上盖子就关机了吗
  • 出纳岗位的职责是什么
  • threejs loader
  • 记账凭证的总账科目是什么
  • 高德加载kml
  • 暂无支付能力的原因
  • 注销公司需要缴纳注册资金吗
  • 职工福利费入账依据
  • PHP自定义函数返回两个数中大的那个
  • 售后租回怎么理解
  • css媒体查询不起作用
  • 建筑保温材料施工规范
  • 小规模纳税人的企业所得税怎么算
  • 研发企业所得税税率
  • python类的继承与多态
  • php 时间
  • web开发百度百科
  • 发票超额怎么办
  • 人力资源服务的发票明细
  • 印花税申报时间填错造成逾期怎么办
  • 只收加工费
  • 个体户需要给员工买五险一金吗
  • 营业外收支计算公式
  • 固定资产处置当月需要计提折旧吗
  • 税金附加科目有哪些
  • 商业汇票的会计核算
  • 从法人借款现金分录
  • 公司章程约定的出资时间
  • 销项税红字发票如何做账
  • sqlserver存储过程实例详解
  • centos 安装选择
  • win7 64位系统如何查看计算机名称为了应付某一操作
  • linux怎么用root运行命令
  • win7电脑能登qq但打不开网页怎么办
  • win8系统怎么设置
  • win7 桌面空白
  • linux中关闭系统命令
  • Unity5 Assetbundle简单使用 及 打包Material文件超大的问题
  • android 图片
  • androidserviceslibrary停用
  • 深入理解ts
  • nginx 执行shell
  • typescript的缺点
  • 堆实现栈
  • 收购烟叶可抵扣进项税
  • 内蒙民生认证系统
  • 财务公司怎么做
  • 印花税票在哪里可以查到
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设