最近在办离职的,所以事情不多,想着就搞点事情,反正我自己有Linux服务器,平时写的东西太垃圾不想放在github上,所以就想着在自己服务器上搭建一个git服务器。网上有很多的教程,但是都是支离破碎的,有些都不能用,所以我就搞了一上午才处理好。
好,废话不多说,现在开始搭建服务器。
先检验服务器有没有安装git
我这个安装过了git,所以就不再安装了。如果没有安装,可以直接
yum install git
安装完成后,看看是否安装成功
git --version
如果显示版本号就证明安装成功了。
创建git用户和git组
groupadd git
useradd git -g git
创建证书登录
收集所有需要登录的用户的公钥,公钥位于id_rsa.pub文件中,把我们的公钥导入到/home/git/.ssh/authorized_keys文件里,一行一个。
如果没有该文件创建它:
cd /home/git/
mkdir .ssh
chmod 755 .ssh
touch .ssh/authorized_keys
chmod 644 .ssh/authorized_key
以上命令Git创建一个空仓库,服务器上的Git仓库通常都以.git结尾。然后,把仓库所属用户改为git:
chown -R git:git runoob.git
禁用shell登录
出于安全考虑,第二步创建的git用户不允许登录shell,这可以通过编辑/etc/passwd文件完成。找到类似下面的一行:
git:x:1001:1001:,,,:/home/git:/bin/bash
改为
git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell
本地或者远程推送拉取
我是在本地测试的,所以本地创建一个测试文件
mkdir -p /data/www/test
git init
vim test.php
git add -A
git commit -m '测试'
git remote add origin git@blog.randzh.xyz(你的ip地址):/home/gitrepo/.git(你的仓库地址)
公钥加进服务器中
先查询一下服务器是否有公钥,一般可以如下查看:
cat ~/.ssh/id_rsa.pub
如果没有的话,可以创建
ssh-keygen -t rsa -C "youremail@example.com"
然后将将生成的id_rsa.pub中所有的内容复制到/home/git/.ssh/authorized_keys 中就行,以后推送就可以不用输入密码了
ok,服务器搭建完成,然后就可以愉快的玩耍了!!!!