您的位置:首页 > 运维架构 > Linux

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

2016-07-02 19:34 507 查看
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的方式,那么验证的就是你登陆的用户名和密码
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: