- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章CentOS 6.3下使用Gitosis安装搭建Git Server教程由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
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 x64 Git: git-1.7.1 Gitosis: Gitosis Gitweb: 1.7.1-3 OpenSSH Server: openssh-server-5.3p1 apache: httpd-2.4.4 python-setuptools: python-setuptools-0.6.10-3 Git server(centos6.3 x64): node2.example.com Git client(centos6.3 x64): node1.example.com 。
server端配置
一.关闭iptables和SELINUX 。
。
。
二.同步时间 。
。
。
三.安装apache 。
传送门:http://www.zzvips.com/article/54969.htm 。
四.安装OpenSSH 。
1.yum安装OpenSSH: 。
2.修改ssh服务端配置
3.重启服务:
。
五.安装Git 。
。
。
六.安装Gitosis 。
1.安装Gitosis依赖python-setuptools包 。
。
2.安装Gitosis 。
。
3.为gitosis创建系统用户 。
。
4. 运行gitosis 。
(1).将管理员生成的公钥上传或拷贝到服务器上。这里的公钥需要在git服务器管理员下使用ssh-keygen命令来创建 。
保证web页面有权限显示该仓库内容 。
。
(2).初始化gitosis 。
进入到拷贝过来的id_rsa.pub所在目录 。
此时,会在/home/git目录下生成gitosis仓库和配置目录 。
。
(3).切换回当前(root)用户 。
。
。
(4).配置权限 。
如果想要别人能够clone gitosis-admin.git,需要执行以下操作: 。
至此,gitosis的安装工作已完成,其相关配置可以有管理员来操作,然后再提交到服务器上. 。
。
(5)现在可以试一下用初始化 Gitosis 的公钥的拥有者身份 SSH 登录服务器,应该会看到类似下面这样: 。
说明 Gitosis 认出了该用户的身份,但由于没有运行任何 Git 命令,所以它切断了连接。那么,现在运行一个实际的 Git 命令 — 克隆 Gitosis 的控制仓库: 在你本地计算机上克隆git仓库 。
这会得到一个名为 gitosis-admin 的工作目录,主要由两部分组成: 红色为git仓库配置,蓝色为实际仓库保存的文件 。
以上操作相当于,系统git用户初始化并成为gitosis管理员,且利用其管理员权限将gitosis-admin仓库clone到本地. 。
。
5.添加本地用户john和仓库test到gitosis,并和管理员git合作管理gitosis 。
1. 用户john添加并发送id_rsa.pub给git 。
2. gitosis管理员git分配john权限 。
。
3. 用户git添加项目test 。
。
。
4. 用户 john clone test并修改hello.txt 。
。
整个过程分为
1.通过修改gitosis-admin管理gitosis用户权限,需要clone到本地,然后修改配置文件,最后add push将结果推送到远程实现权限修改. 。
2.添加系统用户,生成该用户公钥,并将其复制到keydir下,实现该用户有权限进行git等相关操作. 。
3.登陆该用户账户进行git相关操作,修改完后commit,push到中服务器即可完成仓库权限配置. 。
七.安装gitweb 。
1.首先我们需要Git的源码,其中带有GitWeb,并能生成定制的CGI脚本: 。
注: 通过指定 GITWEB_PROJECTROOT 变量告诉编译命令 Git 仓库的位置 。
。
2.设置Apache以CGI方式运行该脚本,并添加一个VirtualHost配置:
(1).加载apache的vhost配置文件 。
搜索包含httpd-vhosts的行,并去掉该行注释. (2).加载cgid模块,使其支持perl语言. 。
搜索包含mod_cgid.so的行,并去掉该行注释. (3).配置VirtualHost 。
添加如下配置
(4).安装Time/HiRes.pm perl模块 首次打开web页面报Can't locate Time/HiRes.pm in @INC ….错误 解决方法
(5).重启apache服务 。
(6).修改本机HOST,并打开gitweb页面 http://git.example.com 。
。
。
大功告成.... 。
最后此篇关于CentOS 6.3下使用Gitosis安装搭建Git Server教程的文章就讲到这里了,如果你想了解更多关于CentOS 6.3下使用Gitosis安装搭建Git Server教程的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
我正在使用 CentOS 6 机器。我尝试遵循以下指南: How to open port in centOS http://ask.xmodulo.com/open-port-firewall-ce
我正在为 CentOS 7 创建一个脚本,但我正在努力根据变量连接值,这与我工作的其他发行版不同。例如,在下面的代码中: DIR_BKP=/tmp/_bkp_local PATH_LOG=$DIR_B
我从以下位置下载了文件: https://github.com/christiangalsterer/httpbeat/releaseshttpbeat-4.0.0-x86_64.rpm 并尝试通过以
我想在我的 Centos 8 中使用命令 mkimage。 我尝试使用命令 dnf install uboot-tools 以 root 身份安装 uboot-tools 但这不可用。 谁能指导我如何
我有一个 Centos 服务器。 结果 $ cat /etc/centos-release CentOS Linux release 7.9.2009 (Core) 和 $ yum list i
我在CentOs7 上安装Gitlab 后遇到了麻烦。我第一次被重定向到管理员密码创建页面,在输入管理员用户密码后,服务器发送错误。 422 The change you requested was
因此,我正在尝试从我的一个运行 centos 的邮箱中发送电子邮件,并且我已经安装并打开了 sendmail,但是发送一封电子邮件实际上需要几分钟时间。电子邮件不是应该几乎是即时的吗? 这是我的/et
我正在尝试在虚拟 Centos 7 发行版上构建一些 C++ 库。由于我还没有发现这个操作系统看不到/usr/local/lib 或/usr/local/lib64 的原因,这些库安装在其他 linu
我正在尝试通过以下网址在我的服务器(centos 7.1 minimal)上安装 imagemagick: imagemagick installation steps 在第 1 步得到这个错误: L
当我尝试安装 rpmforge(我需要安装 phpmyadmin)时出现此错误,将不胜感激任何帮助! [root@plasticarmy ~]# yum http://pkgs.repoforge.o
我需要安装一个centos 5 repo 来在centos 7 机器上下载用于el5 的dhclient,以便在centos 5 机器上传输dhclient rpms。有可能的 ? 谢谢! 最佳答案
我正在开发一个可以在 CentOS 8 和 CentOS 7 系统上运行的程序。在其中,我使用 gethostbyname 将 DNS 名称解析为 IP 地址。 为了尝试使代码可移植,我正在使用以下命
我想在 CentOS7(或 CentOS6)上安装 cgal 模块。它需要 pgrouting 才能使用 PostGIS。 我一直用 CGAL Manual Installation 安装 cgal
我在 CentOS 平台上使用 R/RStudio。我需要查看二进制日志文件(/var/log/messages)是否包含有关图形设备绘图问题的更多信息,但我无法从 RStudio 中读取它。 我在社
我正在尝试在我的 CentOS 上本地安装 Kubernetes。我正在关注这个博客 http://containertutorials.com/get_started_kubernetes/inde
来自 http://kubernetes.io/docs/getting-started-guides/kubeadm/ CentOS Linux 版本 7.2.1511(核心) (1/4) 在主机上
使用tcpdump监控网络流量时,发现很多dns反向查询记录。 像这样: A_IP.55276 > DNS_IP.domain: 9247+ PTR?查询 IP.in-addr.arpa。 (45)
我正在尝试在 CentOS 6.7 和 ./configure --prefix=$HOME/local 上安装 mutt运行良好,但在 make install步骤,我在下面遇到了这个错误,我不知道
如何在 CENTOS 中删除所有以 *0x0.jpg 结尾的文件?我需要删除嵌套在文件夹和子文件夹中的多个文件 最佳答案 我假设你有一个外壳 - 试试 find /mydirectory -type
我需要检索安装在我的 Linux (Centos) 主机上的所有软件包的软件包版本。 rpm -qa 给了我所有已安装软件包的列表。 我知道 rpm -qi "package name"给了我包信息。
我是一名优秀的程序员,十分优秀!