ubuntu 14.04 安装git server

时间:2023-03-09 19:41:37
ubuntu 14.04 安装git server

版本信息

  • ubuntu : 14.04.1
  • git version 1.9.1
  • perl v5.10.1
  • ssh OpenSSH_6.6.1p1

本次安装的git server使用gitolite实现。

参考资料

官网代码库

https://github.com/sitaramc/gitolite

官网手册

http://gitolite.com/gitolite/

概念

gitolite依赖ssh公钥私钥鉴权机制。

ssh 公钥,私钥

ssh本身支持多种登陆鉴权:

  • 基于口令方式(安全级别低,存在被窃听风险)
  • 基于秘钥方式,安全级别高

gitolite安装

安装非常简单,列表如下:

  • 在root或者其它账号下创建公钥,私钥对

ssh-keygen

保留 id_rsa 文件
下载 id_rsa.pub 文件备用

  • root创建git账号
  • 切入到git账号,su - git,克隆官网代码

git clone git://github.com/sitaramc/gitolite

  • 按照官网介绍的后续安装步骤
  • mkdir -p ~/bin
  • gitolite/install -ln ~/bin
  • gitolite setup -pk yourname.pub
    这里的yourname.pub是刚才留存的pub文件。

服务端安装基本上结束了。

服务端管理

服务端管理是通过特殊仓库 gitolite-admin 来完成。

任何持有最初创建的公钥私钥对里面的私钥的人,都可以用该私钥克隆gitolite-admin库。

git clone git@192.168.1.5:gitolite-admin.git

上面命令有几处需要注意:

  • ip是真实的服务器ip;
  • 冒号后面没有/home/git/repositories路径,不需要,也不能加。
  • 执行该命令的人必须持有 id_rsa 文件,并放入 .ssh 路径。

管理库克隆出来后,对keydir和conf目录中的文件管理和修改等同于操作一般的git库。
修改完成后,push到远端,远端会自动解析相关内容,并根据配置增加、删除用户,增加、删除git库。

可以参考: http://gitolite.com/gitolite/gitolite.html#basic-admin

理解

ssh协议的远端地址是可以指定用户的,其实从理论上来说,
所有人,都是使用git用户的,只是提供给系统的公钥不同,
服务端根据客户端提供的公钥私钥对来匹配,完成鉴权。