阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

CentOS 6.5下使用gitosis搭建Git服务器搭建

437次阅读
没有评论

共计 4301 个字符,预计需要花费 11 分钟才能阅读完成。

Git 的基本工作流程

  • 在工作目录中修改某些文件。
  • 对修改后的文件进行快照,然后保存到暂存区域。
  • 提交更新,将保存在暂存区域的文件快照永久转储到 Git 目录中。

Git 服务器搭建

环境部署

  • 系统环境:
    服务器端:CentOS 6.5,ip:192.168.0.130
    客户端:CentOS 6.5,ip:192.168.0.110

  • 软件版本:
    服务器端:源码编译安装,git-1.9.0.tar.gz
    客户端:yum 在线安装机制

安装

服务器端安装

  1. 安装 git:
#yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-devel
#wget http://git-core.googlecode.com/files/git-1.9.0.tar.gz
#tar zxvf git-1.9.0.tar.gz
#cd git-1.9.0
#make prefix=/usr/local all
#make prefix=/usr/local install  #root 用户运行
  1. 查看版本号:
#git --version
git version 1.9.0
  1. 安装 gitosis:gitosis 为 Git 用户权限管理系统, 通过管理服务端的 /home/git/.ssh/authorized_key 文件来执行对用户权限的管理,是一个 python 模块包
#yum install python python-setuptools
#git clone git://github.com/res0nat0r/gitosis.git
#cd gitosis/
#python setup.py install
  1. 显示 Finished processing dependencies for gitosis==0.2 即表示成功

客户端安装

#yum install git
#git --version
git version 1.7.1

配置

ssh 设置

客户端操作:生产密钥并上传到服务器端

#ssh-keygen -t rsa -C "你的邮箱(不能有数字,可以随便编)"
#scp ~/.ssh/id_rsa.pub root@192.168.0.130:~/

注意:这里会生成两个文件,id_rsa 与 id_rsa.pub。打开 id_rsa.pub 看一下,如果最后面的邮箱地址有数字,后面配置会报错,所以这里如果有数字要重新生成。

CentOS 6.5 下使用 gitosis 搭建 Git 服务器搭建 

服务器生成 git 用户

  1. 添加用户 git:
#useradd -r -s /bin/sh -c 'git version control' -d /home/git git
  1. 设置权限:
#mkdir -p /home/git
#chown git:git /home/git
  1. 在服务器端生成管理库:
#sudo -H -u git gitosis-init < ~/id_rsa.pub
Initialized empty Git repository in /home/git//repositories/gitosis-admin.git/ Reinitialized existing Git repository in /home/git/repositories/gitosis-admin.git/ 

注解:

  1. 生成的 gitosis-admin 为 Git 的用户访问权限管理库,gitosis 通过这个 git 库来管理所有 git 库的访问权限。
  2. 通过执行初始化,该公钥的拥有者就能修改用于配置 gitosis 的那个特殊 Git 仓库了
  1. 修改上传权限:
#chmod 755 /home/git/repositories/gitosis-admin.git/hooks/post-update

客户端配置

  1. 客户端导出管理:
#mkdir -p /git-repo/
#cd /git-repo/
#git clone git@192.168.0.130:gitosis-admin.git
#cd gitosis-admin
#find .
./gitosis.conf
./keydir
./keydir/oot@vm1.pub

注解:

  1. 如果报错请尝试 git clone git@192.168.0.130:repositories/gitosis-admin.git
  2. gitosis.conf 文件用来设置用户、仓库和权限的控制文件
  3. keydir 目录则是保存所有具有访问权限用户公钥的地方
  4. git-repo 目录为项目管理目录
  1. 客户端创建及设置管理项目
#cd /git-repo/gitosis-admin
查看已经上传密钥
#ls keydir/
root@vm1.pub
  1. 权限及权限控制
#vim gitosis.conf
[gitosis]


[group gitosis-admin]
writable = gitosis-admin
members = root@vm1        #显示用户 root@vm1.pub 是初始化 gitosis 公钥的拥有者,是唯一能管理 gitosis-admin 项目的人


[group jay_fans]          #组名称
members = root@vm1        #密钥用户名
writable = git-test       #项目名称

注解:

  1. members 可以填多个用户,用户之间空格分隔
  2. writable 为可写,只读为 readonly,设置为只读则只能 pull 不能 push

项目管理

项目创建

接下来我们在客户端创建一个 git-test 的项目,然后推送到服务端仓库。

  1. 在本地创建项目,并设为远程仓库,然后推送至服务端
#cd /git-repo
#mkdir git-test
#cd git-test
#git init
#touch README
#git add .
#git commit -a -m "init git-test"
#git remote add origin git@192.168.0.130:git-test.git
#git push origin master

注解:

在新项目 git-test 里首次推送数据到服务器前,需先设定该服务器地址为远程仓库,但你不用事先到服务器上手工创建该项目的裸仓库— Gitosis 会在第一次遇到推送时自动创建。

  1. 客户端给成员配置此项目的权限
修改 gitosis.conf
[group jay_fans]     #  组名称
members = jay        #  项目成员
writable = git-test
  1. 权限配置推送至服务端
#git commit -a -m "granted jay commit rights to git-test"
#git push

注解:

gitosis 实际上是从服务器端的 /home/git/.gitosis.conf 文件读取信息的,通过以上操作,会将新的权限信息写入到该文件中,如果搞错了配置,导致失去了推送权限,可以通过修改该文件来重新设定,如果你手工编辑该文件的话,它会一直保持到下次向 gitosis-admin 推送新版本的配置内容为止。

  1. 成员 jay 拉取代码
#git clone git@192.168.56.1:git-test.git

项目分配

  1. gitosis.conf 配置文件说明
[group gitosis-admin]   # 项目组 随意起名字即可 可以和项目同名
members = lfz@lfz root110 fengzhen # 此项目组成员 多个成员用空格分隔
writable = gitosis-admin    # writable 是可读写 readonly 是只读 等号后面是项目名 在仓库中对应 gitosis-admin.git
  1. 添加用户步骤
    • 用户在自己电脑的默认目录 (mac 中为~/.ssh/) 下生成或者拿到 id_rsa.pub 文件,然后传给管理员。(注意:id_rsa.pub 最后的邮箱部分不能用数字
    • 管理员将文件改名,例如改为 abc.pub,此时 abc 就是此用户的用户名。然后放入 gitosis-admin/keydir/ 目录下。
    • 管理员编辑 gitosis.conf 文件,以 abc 为用户名,添加到对应项目组内。
    • 管理员将更改推送到服务器仓库。
    • 此时,用户即获得项目权限,可以从远程仓库拉取项目。

后记

有几个使用当中需要注意的点:

  1. 如果 pub 文件没有和服务器中对应起来,操作的时候会提示输入 git 用户的密码,此时如果有密码的话同样可以使用管理功能。
  2. 将用户的 pub 文件和上传至服务器,其实是类似免密登录的原理,利用本地的私钥 id_rsa 和服务端的公钥 id_rsa.pub 实现不需要密码对项目进行管理。
  3. 如果 pub 文件和服务器没对应起来,也就是操作还需要输入 git 密码的时候,在进行 git 操作时,仓库的地址要加上 repositories。例如:
原:#git clone git@192.168.0.130:test.git
现:#git@192.168.0.130:repositories/test.git
  1. 如果不小心将有数字的 pub 传入服务端仓库,导致仓库不能使用。可以登录仓库所在的服务器,git 用户下,编辑 /home/git/.ssh/authorized_keys,删除对应的有数字的秘钥所在行就可以恢复。

CentOS 6.5 下使用 gitosis 搭建 Git 服务器搭建

更多Git 教程系列文章

Git 常用命令整理  http://www.linuxidc.com/Linux/2017-12/149316.htm

GitHub 使用教程图文详解  http://www.linuxidc.com/Linux/2014-09/106230.htm 

Git 使用图文详细教程  http://www.linuxidc.com/Linux/2016-11/136781.htm

Ubuntu Git 安装与使用 http://www.linuxidc.com/Linux/2016-11/136769.htm

分享实用的GitHub 使用教程 http://www.linuxidc.com/Linux/2014-04/100556.htm 

Git 从入门到学会 http://www.linuxidc.com/Linux/2016-10/135872.htm

Git 基本操作详解 http://www.linuxidc.com/Linux/2016-10/135691.htm

Git 部署与常用基本命令详解   http://www.linuxidc.com/Linux/2017-06/144961.htm

分布式版本控制系统 Git 详细教程  http://www.linuxidc.com/Linux/2017-05/143747.htm

Git 命令和配置技巧  http://www.linuxidc.com/Linux/2017-11/148423.htm

Git 的详细介绍:请点这里
Git 的下载地址:请点这里

本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-12/149806.htm

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计4301字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中

星哥玩云

星哥玩云
星哥玩云
分享互联网知识
用户数
4
文章数
19351
评论数
4
阅读量
7994021
文章搜索
热门文章
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
我把用了20年的360安全卫士卸载了

我把用了20年的360安全卫士卸载了

我把用了 20 年的 360 安全卫士卸载了 是的,正如标题你看到的。 原因 偷摸安装自家的软件 莫名其妙安装...
再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见 zabbix!轻量级自建服务器监控神器在 Linux 的完整部署指南 在日常运维中,服务器监控是绕不开的...
飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛 NAS 中安装 Navidrome 音乐文件中文标签乱码问题解决、安装 FntermX 终端 问题背景 ...
阿里云CDN
阿里云CDN-提高用户访问的响应速度和成功率
随机文章
国产开源公众号AI知识库 Agent:突破未认证号限制,一键搞定自动回复,重构运营效率

国产开源公众号AI知识库 Agent:突破未认证号限制,一键搞定自动回复,重构运营效率

国产开源公众号 AI 知识库 Agent:突破未认证号限制,一键搞定自动回复,重构运营效率 大家好,我是星哥,...
还在找免费服务器?无广告免费主机,新手也能轻松上手!

还在找免费服务器?无广告免费主机,新手也能轻松上手!

还在找免费服务器?无广告免费主机,新手也能轻松上手! 前言 对于个人开发者、建站新手或是想搭建测试站点的从业者...
浏览器自动化工具!开源 AI 浏览器助手让你效率翻倍

浏览器自动化工具!开源 AI 浏览器助手让你效率翻倍

浏览器自动化工具!开源 AI 浏览器助手让你效率翻倍 前言 在 AI 自动化快速发展的当下,浏览器早已不再只是...
飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛 NAS 中安装 Navidrome 音乐文件中文标签乱码问题解决、安装 FntermX 终端 问题背景 ...
我把用了20年的360安全卫士卸载了

我把用了20年的360安全卫士卸载了

我把用了 20 年的 360 安全卫士卸载了 是的,正如标题你看到的。 原因 偷摸安装自家的软件 莫名其妙安装...

免费图片视频管理工具让灵感库告别混乱

一言一句话
-「
手气不错
星哥带你玩飞牛NAS-11:咪咕视频订阅部署全攻略

星哥带你玩飞牛NAS-11:咪咕视频订阅部署全攻略

星哥带你玩飞牛 NAS-11:咪咕视频订阅部署全攻略 前言 在家庭影音系统里,NAS 不仅是存储中心,更是内容...
150元打造低成本NAS小钢炮,捡一块3865U工控板

150元打造低成本NAS小钢炮,捡一块3865U工控板

150 元打造低成本 NAS 小钢炮,捡一块 3865U 工控板 一块二手的熊猫 B3 工控板 3865U,搭...
星哥带你玩飞牛 NAS-9:全能网盘搜索工具 13 种云盘一键搞定!

星哥带你玩飞牛 NAS-9:全能网盘搜索工具 13 种云盘一键搞定!

星哥带你玩飞牛 NAS-9:全能网盘搜索工具 13 种云盘一键搞定! 前言 作为 NAS 玩家,你是否总被这些...
零成本上线!用 Hugging Face免费服务器+Docker 快速部署HertzBeat 监控平台

零成本上线!用 Hugging Face免费服务器+Docker 快速部署HertzBeat 监控平台

零成本上线!用 Hugging Face 免费服务器 +Docker 快速部署 HertzBeat 监控平台 ...
让微信公众号成为 AI 智能体:从内容沉淀到智能问答的一次升级

让微信公众号成为 AI 智能体:从内容沉淀到智能问答的一次升级

让微信公众号成为 AI 智能体:从内容沉淀到智能问答的一次升级 大家好,我是星哥,之前写了一篇文章 自己手撸一...