欢迎来到天天文库
浏览记录
ID:3899521
大小:534.72 KB
页数:24页
时间:2017-11-25
《gitolite 构建 git 服务器》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、Gitolite构建Git服务器Gitolite构建Git服务器作者:北京群英汇信息技术有限公司网址:http://www.ossxp.com/版本:0.1-1日期:2010-10-0714:52:19目录1SSH协议1.1SSH公钥认证1.2SSH主机别名2Gitolite服务架设2.1安装Gitolite2.1.1服务器端创建专用帐号2.1.2Gitolite的安装/升级2.1.3关于SSH主机别名2.1.4其他的安装方法2.2管理Gitolite2.2.1管理员克隆gitolite-admin管理库2.2.2增加新用户2.2.3更改授权2.3Gitol
2、ite授权详解2.3.1授权文件的基本语法2.3.2定义用户组和版本库组2.3.3版本库ACL2.3.4Gitolite授权机制2.4版本库授权案例2.4.1对整个版本库进行授权2.4.2通配符版本库的授权2.4.3用户自己的版本库空间2.4.4对引用的授权:传统模式2.4.5对引用的授权:扩展模式2.4.6对引用的授权:禁用规则的使用2.4.7用户分支2.4.8对路径的写授权2.5创建新版本库2.5.1在配置文件中出现的版本库,即时生成2.5.2通配符版本库,管理员通过push创建2.5.3直接在服务器端创建2.6对Gitolite的改进2.7Gitoli
3、te功能拓展2.7.1版本库镜像2.7.2Gitweb和Gitdaemon支持2.7.3其他功能拓展和参考如果不是要和他人协同开发,Git根本就不需要架设服务器。Git在本地可以直接使用本地版本库的路径完成git版本库间的操作。但是如果需要和他人分享版本库、协作开发,就需要能够通过特定的网络协议操作Git库。Git支持的协议很丰富,架设服务器的选择也很多,不同的方案有着各自的优缺点。GITOSIS,HTTPGIT-DAEMONSSHGITOLITE服务架设难易度简单中等简单复杂匿名读取支持支持否*否*身份认证支持否支持支持版本库写操作支持否支持支持企业级授权
4、支持否否否支持是否支持远程建库否否否支持注:SSH协议和基于SSH的Gitolite等可以通过空口令帐号实现匿名访问。1SSH协议SSH协议用于为Git提供远程读写操作,是远程写操作的标准服务,在智能HTTP协议出现之前,甚至是写操作的唯一标准服务。对于拥有SHELL权限的SSH登录帐号,可以直接用下面的git命令访问,例如:$gitclone@:/path/to/repo.git说明:是服务器上的用户帐号。/path/to/repo.git是服务器中版本库的绝对路径。若用相对路径则相对
5、于username用户的主目录而言。如果采用口令认证,不能像HTTPS协议那样可以在URL中同时给出登录名和口令,必须每次连接时输入。如果采用公钥认证,则无须输入口令。SSH协议来实现Git服务,有如下方式:其一是用标准的ssh帐号访问版本库。即用户帐号可以直接登录到服务器,获得shell。另外的方式是,所有用户都使用同一个专用的SSH帐号访问版本库。各个用户通过公钥认证的方式用此专用SSH帐号访问版本库。而用户在连接时使用的不同的公钥可以用于区分不同的用户身份。Gitosis和Gitolite就是实现该方式的两个服务器软件。标准SSH帐号和专用SSH帐号的
6、区别在于:标准SSHGITOSIS/GITOLITE帐号每个用户一个帐号所有用户共用同一个帐号认证方式口令或公钥认证公钥认证用户是否能直接登录shell是否安全性差好管理员是否需要shell是否版本库路径相对路径或绝对路径相对路径授权方式操作系统中用户组和目录权限通过配置文件授权对分支进行写授权否Gitolite对路径进行写授权否Gitolite架设难易度简单复杂实际上,标准SSH,也可以用公钥认证的方式实现所有用户共用同一个帐号。不过这类似于把一个公共帐号的登录口令同时告诉给多个人。在服务器端(server)创建一个公共帐号,例如anonymous。管理员
7、收集需要访问git服务的用户公钥。如:user1.pub,user2.pub。使用ssh-copy-id命令远程将各个git用户的公钥加入服务器(server)的公钥认证列表中。$ssh-copy-id-iuser1.pubanonymous@server$ssh-copy-id-iuser2.pubanonymous@server如果直接在服务器上操作,则直接将文件追加到authorized_keys文件中。$cat/path/to/user1.pub>>~anonymous/.ssh/authorized_keys$cat/path/to/user2.p
8、ub>>~anonymous/.ssh/author
此文档下载收益归作者所有