欢迎来到天天文库
浏览记录
ID:32705832
大小:105.36 KB
页数:33页
时间:2019-02-14
《使用gitolite构建git服务器》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、wenku.uml.org.cn使用Gitolite构建Git服务器目录·1SSH协议o1.1SSH公钥认证o1.2SSH主机别名·2Gitolite服务架设o2.1安装Gitolite§2.1.1服务器端创建专用帐号§2.1.2Gitolite的安装/升级§2.1.3关于SSH主机别名§2.1.4其他的安装方法o2.2管理Gitolite§2.2.1管理员克隆gitolite-admin管理库§2.2.2增加新用户§2.2.3更改授权o2.3Gitolite授权详解§2.3.1授权文件的基本语法§2.3.2定义用户组和版本库组§2.3.3版本库ACL§2.3.4Git
2、olite授权机制o2.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对路径的写授权o2.5创建新版本库§2.5.1在配置文件中出现的版本库,即时生成§2.5.2通配符版本库,管理员通过push创建§2.5.3直接在服务器端创建o2.6对Gitolite的改进o2.7Gitolite功能拓展§2.7.1版本库镜像§2.7.2Gitweb和Gitdaemon支持§2.7.
3、3其他功能拓展和参考如果不是要和他人协同开发,Git根本就不需要架设服务器。Git在本地可以直接使用本地版本库的路径完成git版本库间的操作。但是如果需要和他人分享版本库、协作开发,就需要能够通过特定的网络协议操作Git库。wenku.uml.org.cnGit支持的协议很丰富,架设服务器的选择也很多,不同的方案有着各自的优缺点。 HTTPGit-daemonSSHGitosis,Gitolite服务架设难易度简单中等简单复杂匿名读取支持支持否*否*身份认证支持否支持支持版本库写操作支持否支持支持企业级授权支持否否否支持是否支持远程建库否否否支持注:·SSH协议和基于S
4、SH的Gitolite等可以通过空口令帐号实现匿名访问。1SSH协议SSH协议用于为Git提供远程读写操作,是远程写操作的标准服务,在智能HTTP协议出现之前,甚至是写操作的唯一标准服务。对于拥有SHELL权限的SSH登录帐号,可以直接用下面的git命令访问,例如: $gitclone@:/path/to/repo.git说明:·是服务器上的用户帐号。·/path/to/repo.git是服务器中版本库的绝对路径。若用相对路径则相对于username用户的主目录而言。·如果采用口令认证,不能像HTT
5、PS协议那样可以在URL中同时给出登录名和口令,必须每次连接时输入。·如果采用公钥认证,则无须输入口令。SSH协议来实现Git服务,有如下方式:·其一是用标准的ssh帐号访问版本库。即用户帐号可以直接登录到服务器,获得shell。·另外的方式是,所有用户都使用同一个专用的SSH帐号访问版本库。各个用户通过公钥认证的方式用此专用SSH帐号访问版本库。而用户在连接时使用的不同的公钥可以用于区分不同的用户身份。·Gitosis和Gitolite就是实现该方式的两个服务器软件。标准SSH帐号和专用SSH帐号的区别在于: 标准SSHGitosis/Gitolite帐号每个用户一个
6、帐号所有用户共用同一个帐号wenku.uml.org.cn认证方式口令或公钥认证公钥认证用户是否能直接登录shell是否安全性差好管理员是否需要shell是否版本库路径相对路径或绝对路径相对路径授权方式操作系统中用户组和目录权限通过配置文件授权对分支进行写授权否Gitolite对路径进行写授权否Gitolite架设难易度简单复杂实际上,标准SSH,也可以用公钥认证的方式实现所有用户共用同一个帐号。不过这类似于把一个公共帐号的登录口令同时告诉给多个人。·在服务器端(server)创建一个公共帐号,例如anonymous。·管理员收集需要访问git服务的用户公钥。如:use
7、r1.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.pub>>~an
此文档下载收益归作者所有