CentOS 搭建Git服务器


服务端


1,安装openssh服务断和客户端

yum -y install openssh

2,安装git和python-setuptools

yum -y install git python-setuptools

3,获取并安装gitosis,来管理git仓库

git clone https://github.com/res0nat0r/gitosis.git
cd gitosis
python setup.py install


客户端


4,在客户端操作生成RSA公钥,并把公钥上传到服务端的/tmp下

ssh-keygen -t rsa
scp ~/.ssh/xxx.pub root@server_ip:/tmp # “xxx” 是上一句shell生成的公钥的名称,“server_ip”是对应服务器的公网ip地址


服务端


5, 配置gitosis

useradd git # 创建git管理账户
sudo -H -u git gitosis-init > /tmp/id_rsa.pub #将公钥导入gitosis管理,生成管理账户,初始化gitosis-admin管理账户
chmod 755 /home/git/repositories/gitosis-admin.git/hooks/post-update # 修改gitosis的push权限

6,为了操作时不输入密码将公钥添加到authorized_keys使用私钥访问

cat /tmp/id_rsa.pub >> /home/git/.ssh/authorized_keys
chmod 600 /home/git/.ssh/authorized_keys # 默认好像就是600

7,Gitosis配置,将管理项目 clone 到客户端

git clone git@127.0.0.1:/gitosis-admin.git

8,添加新项目,修改gitosis-admin.config

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 #项目名称


客户端


9, 初始、增加及使用项目git-test

cd /Desktop
mkdir git-test
cd git-test
git init
touch README
git add .
git commit -a -m “init git-test”
git remote add origin git@server_ip:git-test.git
git push origin master

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

特别注意RSA公钥的使用 :

在创建新项目时(管理项目除外)最好不要使用gitosis-admin的管理公钥,尽可能让它只服务于管理项目,否则在push或者clone的时候可能会报错例

如:fatal: ‘gitosis-admin.git’ does not appear to be a git repository

解决的办法是:

1.重新生成一对私钥公钥 并将公钥上传到管理项目的 keydir 用户使用对应的私钥进行操作 (推荐)

2.clone,push ,pull 使用全路径 例如:

git clone git@server_ip:/home/git/repositories/git-test.git

这样使用起来不叫麻烦

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值