如题,如何快速搭建一个git服务,大致步骤如下:
1.安装git
2.创建用户
3.初始化裸仓库
4.配置公钥
5.禁止shell登录

下面是逐步操作:(系统是CentOS 7)

安装git

yum 安装(默认root用户)

yum install -y git

查看git 版本

git --version

服务搭建git仓库 搭建一个git服务器_服务器


安装成功后能看git 的版本信息

创建用户

创建一个用来运行git的用户

useradd your_git

设置密码

passwd your_git

服务搭建git仓库 搭建一个git服务器_服务搭建git仓库_02


创建成功后在 /home 里面会有一个用户的目录 (和你创建的用户同名)

服务搭建git仓库 搭建一个git服务器_linux_03


顺便去用户目录里看一眼(里面是空的,除了隐藏文件)

服务搭建git仓库 搭建一个git服务器_linux_04

初始化裸仓库

初始化裸仓库,我习惯放 /srv 目录里面, 在初始化命令之前,你还有其他工作
比如指定一个目录,没有就创建一个空目录,
目录名称就是 后面的 xxx.git 不一定是.git 结尾
但是,默认大家都这么干,所以你最好也这样做
然后 改变目录所有者为 git 用户(your_git)
主要命令:

git init --bare xxx.git
chown -R your_git:your_git xxx.git

服务搭建git仓库 搭建一个git服务器_linux_05

配置公钥

本地公钥和服务器公钥存放

本地公钥位置:~/.ssh/ 就是用户家目录下面的一个隐藏目录 .ssh 里面

一个名为 id_rsa.pub 的文件内容 可以看到 ssh-rsa xxxxxxx 这些就是公钥

服务搭建git仓库 搭建一个git服务器_git_06


如果是windows(如 win 10)

服务搭建git仓库 搭建一个git服务器_centos_07


如果没有.ssh 目录 ,则需要用命令生成公钥

来到用户家目录下,输入如下命令

ssh-keygen -o

服务器公钥保存位置:/home/your_git/.ssh/authorized_keys

your_git 目录是之前创建的git 用户的目录 默认里面是没有.ssh目录的 之前我们查看过

所以 需要创建 .ssh 目录 和 authorized_keys 文件

并修改所有者为你的git 用户 (your_git)

然后把你本地的公钥保存到 authorized_keys 文件中,如果有多条公钥,则一行一条

下面是保存在虚拟机里面的公钥:

服务搭建git仓库 搭建一个git服务器_git_08


别忘记修改.ssh目录的所有者为git用户了

服务搭建git仓库 搭建一个git服务器_linux_09


到这里已经可以正常操作了

禁止shell登录

基于安全考虑,禁止用户 your_git shell 登录
修改/etc/passwd 文件中的一些内容即可,
在修改前,我们看下 git-shell 的位置 默认是在 /usr/bin/git-shell

whereis git-shell

服务搭建git仓库 搭建一个git服务器_centos_10

vi /etc/passwd

编辑 /etc/passwd 文件可以看到如下图

服务搭建git仓库 搭建一个git服务器_git_11


看到红色框的内容了, 里面下划线的位置就是要改的地方,改成如下图

服务搭建git仓库 搭建一个git服务器_centos_12


也就是上面我们查看 git-shell 这个文件的路径到这里就OK了,测试一下

克隆服务器上的仓库:

可以看到克隆的地址组成,local_git 是用户名(your_git) ,@ 后面是服务器地址 ,

: 后面是裸仓库的路径

服务搭建git仓库 搭建一个git服务器_服务搭建git仓库_13


之后就是git的正常操作了