使用Gitosis搭建Git服务器

使用Gitosis搭建Git服务器

作者: JeremyWei | 可以转载, 但必须以超链接形式标明文章原始出处和作者信息及版权声明
网址: http://weizhifeng.net/build-git-server-with-gitosis.html
Git

1.安装gitosis
首先是获取gitosis(这里假设你已经安装过git):

git clone git://github.com/res0nat0r/gitosis.git
接下来安装gitosis:

sudo python setup.py install
如果出现以下错误:

Traceback (most recent call last):
 File "setup.py", line 2, in ?
 from setuptools import setup, find_packages
 ImportError: No module named setuptools
或者 -bash: python: command not found

那么你还需要安装python-setuptools:

sudo yum install python-setuptools
接下来添加用来管理仓库的用户,用户名任意,我们这里使用git:

useradd git
Mac用户在「系统偏好设置 ? 用户与群组 」中添加。

修改PATH,使git用户可以调用git:

vi /home/git/.bashrc
PATH=/usr/local/bin:/usr/local/git/bin:$PATH
创建key pair,并拷贝public key到/tmp下,这样可以确保gitosis-init命令对其有读取权限:

ssh-keygen -t rsa
cp ~/.ssh/id_rsa.pub /tmp/id_rsa.pub
以git用户来执行gitosis-init命令:

sudo -H -u git gitosis-init < /tmp/id_rsa.pub
此时/home/git下增加了两个目录:

gitosis
repositories
其中gitosis是gitosis的根目录,repositories是仓库存放目录。

如果出现以下错误:

if install git from source, otherwise:
raise child_exception
OSError: [Errno 2] No such file or directory
那么做个symlink:

ln -s /usr/local/bin/git /usr/bin/git
给脚本post-update赋予可执行权限:

sudo chmod 755 /home/git/repositories/gitosis-admin.git/hooks/post-update
2. 添加新仓库
gitosis的管理是通过git来管理的,clone一下:

git clone [email protected]:gitosis-admin.git
如果出现以下错误:

Cloning into gitosis-admin...
ssh: connect to host 192.168.1.30 port 22: Connection refused
fatal: The remote end hung up unexpectedly
那么确认当前机器openssh是否已经启动,Mac用户通过”系统偏好 -> 共享 -> 远程登录”进行设置。

cd gitosis-admin
ls -l
-rw-r--r--  1 weizhifeng  staff  124  6 14 13:45 gitosis.conf
drwxr-xr-x  3 weizhifeng  staff  102  6 14 13:46 keydir
keydir目录用来存放用户的public key(.pub文件),gitosis.conf为配置文件。

看一下配置文件:

cat gitosis.conf
[gitosis]

[group gitosis-admin]
    members = Mac
    writable = gitosis-admin
其中group代表一个组,writable是仓库名,members是此仓库的成员,可以有多个成员,用空格进行分割。

添加一个新仓库:

[group test]
    members = Mac
    writable = test
把更改提交并push到[email protected]:gitosis-admin.git:

git commit -a -m "添加新仓库test"
git push
在本地创建一个仓库,并push到[email protected]:test.git,gitosis会在/home/git/repositories自动创建test.git这个仓库:

mkdir test
cd test
touch README
git init
git remote add origin [email protected]:test.git
git push origin master
3. 添加用户
假设我们要添加的用户为jeremy,那么需要创建key pair:

ssh-keygen -t rsa
假设生成的public key为~/.ssh/jeremy.pub

cd gitosis-admin
修改gitosis.conf,修改后为如下:

[group test]
members = Mac jeremy
writable = test
注意.pub文件名和你要在members中添加的用户名要完全一样。

拷贝jeremy.pub到keydir中:

cp ~/.ssh/jeremy.pub keydir/
把更改push到gitosis-admin.git:

git commit -a -m "添加jeremy到test仓库"
git push
接下来把private key分发给jeremy,然后他就可以从自己的机器上进行clone了:

git clone [email protected]_HOSTNAME:test.git
如果出现以下错误:

ERROR:gitosis.serve.main:Repository read access denied
fatal: The remote end hung up unexpectedly
是因为使用了内容相同,名字不同的public key(.pub)。

4.其他
如果SSH使用的不是22端口,那么请如下修改:

vi ~/.ssh/config
Host myserver.com
Port 2345
5. 参考
http://scie.nti.st/2007/11/14/hosting-git-repositories-the-easy-and-secure-way/
http://lukhnos.org/blog/en/archives/162/
http://blog.longwin.com.tw/2011/03/linux-gitosis-git-server-2011/

  

时间: 2024-08-02 02:49:21

使用Gitosis搭建Git服务器的相关文章

CentOS 6.4 搭建git 服务器

CentOS 6.4 搭建git 服务器 (2013-11-22 19:04:09)转载▼ 标签: it 分类: Linux 此文件是依据markdown所编写,更好效果参见本人github的文档https://github.com/jackliu2013/recipes/blob/master/doc/linux/CentOS_6.4_git服务器搭建.md ##CentOS安装Git服务器 Centos 6.4 + Git 1.8.2.2 + gitosis## 1.查看Linux系统服务器

如何在服务器上搭建git服务器

参考文章: http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/00137583770360579bc4b458f044ce7afed3df579123eca000 http://wlog.cn/soft/git-ssh-server-for-debian.html 在远程仓库一节中,我们讲了远程仓库实际上和本地仓库没啥不同,纯粹为了7x24小时开机并交换大家的修改. GitHub就

零基础Centos6搭建Git服务器,及常见问题解决

1.编译安装git 1$ wget http://kernel.org/pub/software/scm/git/git-1.7.3.tar.gz #目前最新版本 2$ tar -xzvf git-1.7.3,tar.gz #解压出来 3$ cd git-1.7.3 #进入目录 4$ yum install  -y gettext-devel expat-devel curl-devel zlib-devel openssl-devel #-y是默认自动安装,安装编译时用到的东东 5$ ./co

Git_搭建Git服务器

在远程仓库一节中,我们讲了远程仓库实际上和本地仓库没啥不同,纯粹为了7x24小时开机并交换大家的修改. GitHub就是一个免费托管开源代码的远程仓库.但是对于某些视源代码如生命的商业公司来说,既不想公开源代码,又舍不得给GitHub交保护费,那就只能自己搭建一台Git服务器作为私有仓库使用. 搭建Git服务器需要准备一台运行Linux的机器,强烈推荐用Ubuntu或Debian,这样,通过几条简单的apt命令就可以完成安装. 假设你已经有sudo权限的用户账号,下面,正式开始安装. 第一步,安

CentOS搭建Git服务器及权限管理

声明:本教程,仅作为配置的记录,细节不展开,需要您有一点linux的命令基础,仅作为配置参考. 1. 系统环境 系统: Linux:CentOS 7.2 64位 由于CentOS已经内置了OpenSSH,如果您的系统没有,请自行安装. 查看ssh版本 $ ssh -V # 输出以下表示没问题,可以继续. 版本可能不一致,能用即可. OpenSSH_6.6.1p1, OpenSSL 1.0.1e-fips 11 Feb 2013 避免系统环境和其他的不一致,请核对您系统的版本,其他发行版请对应修改

在CentOS搭建Git服务器 转

在CentOS搭建Git服务器 来自 :http://www.jianshu.com/p/69ea5ded3ede 前言 我们可以GitHub发布一些开源代码的公共仓库,但对于私密仓库就需要收费了.公司内部通常会搭建自己的Git服务器,我也通过在自己的服务器上搭建练习一下. 开始前先说一下服务器信息,这里是阿里云的CentOS 6.5 64位操作系统. 一 确认服务器是否安装Git [[email protected] git]# rpm -qa gitgit-1.7.1-3.el6_4.1.x

linux 搭建git 服务器

cenos 搭建git 服务器 假设你已经有sudo权限的用户账号,下面,正式开始安装. 第一步,安装git: # yum install git 第二步,创建一个git用户,用来运行git服务: # adduser git 第三步,创建证书登录: git客户端生产成 id_rsa.pub,输入命令 ssh-keygen -t rsa windows主机上在 C:\Users\Administrator\.ssh 目录下 id_rsa.pub 这个文件 收集所有需要登录的用户的公钥,就是他们自己

Windows操作系统下搭建Git服务器和客户端。

本文将介绍如何在Windows操作系统下搭建Git服务器和客户端.服务器端采用的是Bonobo Git Server,一款用ASP.NET MVC开发的Git源代码管理工具,界面简洁,基于Web方式配置,简单易用.客户端是采用的TortoiseGit工具,UI操作,省去输入命令的麻烦,对于windows用户来说更易于使用. 所需软件: Git服务器端: BONOBO GIT SERVER,下载最新版:http://bonobogitserver.com/ Git客户端: msysgit,下载最新

版本控制——Git 使用笔记,以及Windows搭建Git服务器

Git和Github的关系 链接:http://www.zhihu.com/question/21907548/answer/95284202 来源:知乎 Git是一款免费.开源的分布式版本控制系统 Github是用Git做版本控制的代码托管平台 相当于本地.公司服务器.Github网站服务器都装Git做版本控制,只不过Github的服务器强大些,对全球用户托管的项目用Git做版本控制! 正是由于Github用Git做版本控制,所以可以轻松的记录项目的变迁史,然后有了下图 git是一张弓,git