Ubuntu中搭建Git服务器

Posted by QingQue on 2020-06-06

前言

博客是用Hexo搭建的,Hexo的一键部署功能很好用,用ftp来完成部署不太安全,所以就在自己的VPS上搭建Git服务器,来完成Hexo的部署。

搭建Git服务器

安装Git
1
sudo apt-get install git
创建一个用户,用来运行Git服务:
1
sudo adduser git
初始化Git仓库
1
2
sudo git init --bare blog.git #创建裸库
sudo chown -R git:git blog.git #更改目录的所有着

注意:这里是创建的一个裸库(即一个不包含当前工作目录的仓库),push上来的文件,我们是看不见的,后面用Git Hook将文件放到我们的Web目录里面去。

创建证书,免密码登录

首先在本机上创建SSH公钥,然后把id_rsa.pub文件里面的内容放到服务器上/home/git/.ssh/authorized_keys文件里,如果你想在多台电脑上使用可以,只需要在authorized_keys文件里面添加即可,一行一个。

禁用shell登录

我们只想用git用户来操作Git仓库,所以为了安全,我们禁用Git用户的shell登录

编辑 /etc/passwd

1
2
3
4
找到:(一般在最后一行)
git:x:1001:1001:,,,:/home/git:/bin/bash
#修改为:
git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell

配置Git Hook

使用Git Hook将我们push上来的文件自动放到我们的Web目录里面去

进入 blog.git/hooks 目录:
1
2
3
4
# 启用post-update
mv post-update.sample post-update
# 添加执行权限
chmod +x post-update
修改 post-update
1
2
3
4
#!/bin/sh
#/docker/www/hexo 这是我的web目录
#/home/git/blog.git 这是我们刚刚建立的裸库,地址
git --work-tree=/docker/www/hexo --git-dir=/home/git/blog.git checkout -f

至此完成了,使用git@服务器IP:/home/git/blog.git这个地址就可以完成push和clone了。


分享到: