Hello! 欢迎来到小浪云!


Ubuntu install and configuration Git server


avatar
小浪云 2025-02-05 103

Ubuntu install and configuration Git server

**环境配置**

本教程基于Ubuntu 14.04系统,使用git 1.9.1和Gitolite搭建Git服务器

**安装Openssh服务器**

首先,安装OpenSSH服务器:

sudo apt-get install openssh-server
**安装Git服务器端**

接下来,安装Git服务器端:

sudo apt-get install git-core
**创建Git用户**

创建一个专门用于Git管理的系统用户(所有用户将使用此账户登录,通过公钥进行身份验证和权限控制):

sudo adduser --system --shell /bin/bash --group git sudo passwd git

(注意:git用户名可替换为其他名称。)

**生成管理员公钥**

在任意客户端生成管理员公钥(后续可更改):

ssh-keygen -t rsa

这将在您的用户主目录下创建.ssh目录,包含id_rsa(私钥,务必妥善保管)和id_rsa.pub(公钥,可公开)两个文件。 将id_rsa.pub公钥复制到Git服务器:

scp ~/.ssh/id_rsa.pub git@serverip:/tmp/admin.pub
**安装Gitolite**

安装Gitolite:

sudo apt-get install gitolite
**切换到Git用户**

切换到Git用户:

sudo su git
**导入管理员公钥**

导入管理员公钥:

sudo gl-setup /tmp/admin.pub

(如无特殊需求,可直接跳过配置步骤。)

**克隆Gitolite-admin仓库**

在客户端克隆`gitolite-admin`仓库并进行权限配置:

git clone git@serverip:gitolite-admin

克隆后的gitolite-admin目录包含keydir(存放所有用户公钥)和conf(存放配置文件gitolite.conf)两个子目录。

**权限配置(`gitolite.conf`)**

`gitolite.conf`文件用于配置用户权限。 高级权限配置请参考[Git官方文档](https://git-scm.com/book/zh/v1/服务器上的-Git-Gitolite)。

示例配置:

@admin          = admin zhangsan lisi wanger       // 管理员组 @guest           = guest xiaoming                   // 来宾组 @Project_repo      = T1 T2 T3 T4 T5 T6 T7 T8 T9    // 项目仓库组  repo    @Project_repo                               // 创建仓库             RW+             =@admin                 // 管理员组拥有读写权限             RW     int$  =@guest                   // 来宾组仅能读写int分支

修改完成后,提交更改:

cd gitolite-admin git add . git commit -m "权限配置更新" git push origin master
**添加其他用户**

其他用户需要生成公钥,并将公钥发送给管理员。管理员将公钥(例如`zhangsan.pub`)复制到`keydir`目录,并在`gitolite.conf`中添加相应权限配置。

相关阅读