linux ubuntu 12.04 搭建git服务器:ssh方式clone

linux ubuntu 12.04 搭建git服务器:ssh方式clone

一.git在线安装,非源码安装,判断git是否安装,命令:git 若是没有安装则显示如图:

1.设置root登陆账户,具体请查看 http://blog.csdn.net/liangzi4454/article/details/46792897 第三点: Ubuntu 12.04 root用户登录设置
2.为了可以正常安装,执行以下两个命令:
apt-get update, apt-get upgrade
3.判断是否安装ssh,命令:ps -ef|grep ssh,
若是如图片所示,就是已经安装,否则请安装ssh,命令:apt-get install openssh-server openssh-client

4.安装git,命令: apt-get install git 安装完成初始化git服务器用户信息包括"用户名"和"邮箱",可以随便填写,并且这两个命令设置没有任何提示,命令如下:
git config --global user.name 'username'
git config --global user.email 'useremail'
5.下载gitosisgitosis主要是用于给用户授权,我将下载的工具放到了统一目录:/usr/local
git clone https://github.com/res0nat0r/gitosis.git
由于gitosis需要python命令安装,所以进入/usr/local/gitosis目录下执行如命令:
apt-get install python-setuptools
python setup.py install
二.创建git管理员账户,配置git
1.创建git服务器的管理员,管理其它用户的权限
useradd -m git //-m: 在/home目录下建立一个用户,-d在指定名录下建立用户,如:useradd -d /home/user
passwd git //填写密码,一定要记住,以后创建git仓库时使用
2.创建git服务器的仓库存储
mkdir /home/git/repositories //git仓库默认存储目录
chown git:git /home/git/repositories //设置只允许git用户才能访问此目录
chmod 755 /home/git/repositories  //设置目录访问的可读写或执行的权限
3.在服务器端生成管理员的ssh公钥,执行命令,有保存目录和密码提示不用填写,直接回车
ssh-keygen -t rsa
默认该命令会在~/.ssh目录下生成两个文件:id_rsa(公钥)和id_rsa.pub(私钥),将公钥复制到/tmp目录下
cp ~/.ssh/id_rsa.pub /tmp
4.启动gitosis并初始化
sudo -H -u git gitosis-init < /tmp/id_rsa.pub
此时去/home/git/repositories下可以看到gitosis-admin.git库文件,权限控制在gitosis.conf文件
将公钥id_rsa.pub放在/home/git/repositories/gitosis-admin.git/gitosis-export/keydir下,以后所有的客户端(windows)用户的公钥都放在这个文件下
给/home/git/repositories/gitosis-admin.git/hooks/post-update权限:
chmod 755 /home/git/repositories/gitosis-admin.git/hooks/post-update
到此管理员初始化完成,git服务器配置完成
三.项目配置
1.创建测试仓库
创建一个空的仓库helloworld
mkdir /home/git/repositories/helloworld.git
分配权限,记住一定要分配权限
chown -R git:git /home/git/repositories/helloworld.git
进入helloworld目录初始化仓库
git --bare init
2.打开gitosis.conf文件
vim /home/git/repositories/gitosis-admin.git/gitosis.conf 内容如下
[group gitosis-admin] #管理员组
members = root@slave1-virtual-machine ##管理员用户名,需要在/home/git/repositories/gitosis-admin.git/gitosis-export/keydir目录下找到相应的.pub文件,多个可用空格隔开
writable = gitosis-admin ##读写权限
3.新增访问版本helloworld的权限,编辑gitosis.conf文件,内容如下:
[group developers]
writable = helloworld
members = zhangsan zhaosi
#配置解释:developers组成员有zhangsan和zhaosi两个成员,该组对helloworld仓库有读写权限
[group test] 
readonly = helloworld
members = wangwu
#配置解释:test组成员wangwu,该组对helloworld仓库只有读权限
保存退出
四,客户端(windows)上下载helloworld到本地
1.安装git客户端
主要是用git bash命令行操作
2.clone项目到本地
我的项目目录是 D:/ProgramFiles/Workspace,在此目录下执行命令:
git clone git@192.168.17.130:/home/git/repositories/helloworld.git
下载完成可以看到helloworld目录,在这个目录下有一个隐藏的.git文件目录,说明以上操作都成功

第三步的gitosis.conf配置文件中,无论是否配置了[group developers] writable = helloworld members = zhangsan,其效果都一样,这里暂时有疑问,不知道什么原因

注意:

1.必须先在git服务器上创建一个仓库,然后才能把本地仓库内容提交到git服务器

2.根据git所使用的协议,如果使用ssh方式就应该,那么clone的方式为:git@youdomain.com:xxxxxx.git,配置了公钥就可以直接访问了,不需要用户名和密码;
如果是http/https的方式,那么验证的就是你登陆的用户名和密码
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值