创建带权限控制的git server(使用gitolite)
来源:互联网 发布:淘宝尺码怎么设置 编辑:程序博客网 时间:2024/06/05 17:42
创建带权限控制的git server(使用gitolite)
以ubuntu16为平台,软件包全部使用apt安装,非常省心。
小型企业可以参照搭建一个可用于实际生产的git版本控制系统。
权限控制使用gitolite,配置简单。
请以纯系统在虚拟机中测试本文档。
一、安装好ssh服务器、准备好git用户账号
1. 安装ssh服务器 sudo apt install openssh-server 安装完成即可,不需要做任何配置。这里ssh服务器ip是192.168.11.202;2. 创建用于管理git数据的用户 sudo adduser gituser 在git服务器上,只需要一个管理git数据的操作系统用户账号; git库中的用户账号不需要在系统中创建,由gitolite管理,简单。3. 测试连接到ssh服务器 在客户端运行 ssh gituser@192.168.11.202 此时输入gituser的密码应该可以登录
二、服务器上安装git和gitolite
1. 安装git 服务器上默认已经安装了git,如果未安装执行下面的 sudo apt install git2. 安装gitolite sudo apt install gitolite3 安装过程中要求输入管理员的key,不用输入,安装完成后再配置;
三、配置gitolite
1. 准备gituser的ssh证书 在client系统中运行ssh-genkey,生成的key有两个,一个公钥一个私钥, 私钥留在client系统中,公钥要送到git服务器中(即ssh服务器),做ssh登录使用。 运行ssh-genkey时询问证书名称,我们输入gituser,默认名称是id_rsa, 保存在目录~/.ssh/id_rsa,因为我们在生成时输入了gituser,那么证书生成在当前目录 我们将证书移动到 .ssh 目录 mv gituser ~/.ssh/ mv gituser.pub ~/.ssh/ chmod 600 ~/.ssh/gituser #ssh客户端对私钥会进行权限检查,如果权限不对,会拒绝使用私钥 不要惧怕证书,一般证书都是成对使用,公钥在服务器,私钥在客户端电脑; 用证书完全不需要设置密码,而且传送都是加密的,很好用;2. 拷贝公钥到git服务器 scp ~/.ssh/gituser.pub gituser@192.168.11.202:~/3. 配置gitolite 3.1 现在我们回到server系统,切换到gituser su gituser 3.2 运行gitolite设置 gitolite setup -pk ~/gituser.pub 运行下面的内容可以看到gitolite把pub添加了authorized_keys文件中 vim ~/.ssh/authorized_keys
四、通过gitolite管理项目和用户
1. 定义好client的ssh客户端 定义好之后,直接通过证书登录,不需要输入用户名和密码,gitolite只使用证书登录方式; 回到client系统上,编辑 ~/.ssh/config 文档; gedit ~/.ssh/config 加入如下内容 host gitserver HostName 192.168.11.202 port 22 IdentityFile ~/.ssh/gituser2. clone gitolite的管理库 gitolite hook了ssh服务,当我们用ssh push git库时,它的hook先处理请求; 因此它使用一个git库来做管理gitolite配置的方式,当我们push gitolite的管理库时, 它根据库的内容,创建库、用户;由于它hook了ssh,如何对任何库的读写都经过它, 因此,它可以根据管理库的设置进行权限控制; 要注意的是,使用gitolite管理git server时,不要再git server上手动创建库; 所有库由gitolite自动管理,所有库位于gituser用户的~/repositories 目录中; clone任何项目时,不要使用绝对路径,否则gitolite的hook不能正常处理; 还有,库名称后面不要加.git cd ~ git clone gituser@gitserver:gitolite-admin3.配置gitolite 3.1 增加用户 用ssh-genkey生成公钥和私钥,公钥名称改为“用户名.pub”,比如添加用户tom,文件名就是 tom.pub 放到 keydir 目录 然后git commit,git push,gitolite的hook在提交后,会将pub中的key内容添加到 gituser用户的~/.ssh/authorized_keys 文件中 tom配置自己的ssh客户端 tom中自己的电脑中运行 gedit ~/.ssh/config 加入 host gitsvr HostName 192.168.11.202 port 22 IdentityFile ~/.ssh/tom 然后可以使用下面命令clone git clone gituser@gitsvr:testing tom查看自己在该git server的库权限 ssh gituser@gitsvr info 3.2 增加git库以及定义gitolite的权限 官方说明文档:[gitolite doc](http://gitolite.com/gitolite/gitolite.html) 实现这些都是通过编辑 conf/gitolite.conf 文件来实现的, 如果在该文件中新定义了git 库,git push的时候,hook就会自动在 gituser用户的~/repositories 目录中创建一个 git 库;
五、git用户使用客户端
上面配置时创建了tom用户,以及说明了tom如何在自己的电脑上配置ssh客户端下面说明windows中TortoiseGit客户端中如何操作1. 准备私钥 TGit(TortoiseGit),推荐是PuTTY来处理ssh连接; 1.1 如果我们已经有ssh生成看到key 我们需要把ssh的key转为PuTTY的key 按windows按键,输入puttygen; 选择菜单“Conversions”->“Import Key”,选择sshkey(必须是私钥); “key comments”中输入证书的说明文字,方便以后识别,比如我输入gituser,表示是gituser的证书; 然后点击“Save Private Key”,保存到文件; 1.2 如果还没有key 运行“Git Bash Here” 运行“ssh-keygen”,按提示生成,然后再按上面的说明转成putty的key;2. clone出项目 打开TGit的克隆, URL:gituser@192.168.11.202:gitolite-admin 加载Putty密钥选择上面生成的ppk密钥; 点击“确定”按钮;
如果对你有用,请赞助我一点咖啡豆
0 0
- 创建带权限控制的git server(使用gitolite)
- 使用Gitolite来对Git的repository实现权限控制
- 用 gitolite搭建git server实现权限控制(1)
- 用 gitolite搭建git server实现权限控制(2)
- 使用gitolite管理git权限
- Linux 使用 Gitolite 架設 Git Server
- Gitolite 构建 Git 服务器的权限管理
- Gitolite 构建 Git 服务器的权限管理
- Git的几种权限控制方案体验:gitosis(gitosis-ossxp-fork),gitolite
- 使用Gitolite搭建轻量级的Git服务器
- 使用Gitolite搭建轻量级的Git服务器
- 使用Gitolite搭建轻量级的Git服务器
- 使用Gitolite搭建轻量级的Git服务器
- 使用Gitolite搭建轻量级的Git服务器
- git权限管理插件gitolite
- git 添加权限管理gitolite
- gitolite部署的带有权限管理的git服务器使用说明
- 企业级Git Server服务器架设,使用Gitolite管理权限
- 12个有趣的HTML5实例(转)
- sql 拼接 sqlserver Oracle MySQL
- ZOJ-3712-Hard to Play
- A - Applications ZOJ - 3705
- ProtocolBuffer for Objective-C 运行环境配置及使用
- 创建带权限控制的git server(使用gitolite)
- Python Qt定义自己的对话框
- 【Android】滑动确认的按钮
- 如何搭建自己CDN服务器
- PyPDF2处理pdf文件的一个例子
- A*算法lua实现
- SpringMVC配置JSON、JSP、FreeMark多视图解析器配置
- 洛谷_p1082同余方程
- 【深入iOS开发】iOS仿射变换和3D变换