centos 7 配置git server 详解

前言:本文将介绍centos7上的git server 安装与设置。本教程适用于初级前端,并想要了解git server的搭建步骤的可以看看。

安装Open SSH Server

首先我们得需要安装Open SSH Server 确保centos7可以被远程访问。



[root@localhost ~]# yum list installed | grep openssh-server


[root@localhost ~]# yum install openssh-server 


[root@localhost ~]# yum list installed | grep openssh-server

image.png

开启远程访问

需要修改配置文件 /etc/ssh/sshd_config


# vi /etc/ssh/sshd_config


# i



#[esc]


# :wq

将文件中的选项修改为如下的形式。
image.png

启动SSH服务

使用如下指令对SSH服务进行停止、启动、重启等操作



# sudo service sshd stop

# sudo service sshd start

# sudo service sshd restart

# ps -e | grep sshd

进程信息存在表示SSH服务成功运行
image.png

安装Git Server

使用yum安装git


# yum install git

建立Git账户
创建一个单独的git账户用以进行Git操作


# adduser git

# passwd git

限制git账户登录


# vi /etc/passwd

原始值:git:x:1000:1000::/home/git:/bin/bash
修改为:git:x:1000:1000::/home/git:/usr/bin/git-shell

开启SSH RSA 验证
因为关闭git账户的远程登录,因此需要启动ssh的rsa验证以确保可以使用该种方式连接到git server ,修改如下配置


# vi /etc/ssh/sshd_config

原始值: #RSAAuthentication yes 修改后值:RSAAuthentication yes
原始值: #PubkeyAuthentication yes 修改后值:PubkeyAuthentication yes 
并确保 “AuthorizedKeysFile” 的值为 “.ssh/authorized_keys”


# sudo service sshd restart

创建git中央仓库

再/home/git目录下创建一个空的仓库(一般以.git结尾),裸仓库是没有工作区的,纯粹为了共享


# cd /home/git

# git init --bare [name].git

# mkdir .ssh

# cd .ssh

# touch authorized_keys 
#打开客户端中的 “id_rsa.pub” 文件,将该文件中的全部内容拷贝至服务端中的 “authorized_keys” 文件中。

# chown -R git.git [name].git
# chown -R git.git /home/git/.ssh/

使用git hook

中央仓库其实只是一个中介,如果你想要把中央仓库的代码关联到你域名挂载下的文件夹时候,就需要使用到git的钩子来实现,当客户端提交代码到中央仓库,中央仓库能将代码也推送到另外的一个文件夹下面

1、在服务器初始化一个本地仓库,这个仓库就是你虚拟主机指定的文件夹,也就是你输入域名后会访问到的那个文件夹

cd /usr/www     #进入你虚拟主机的挂载目录

git init         #初始化git
git remote add origin /home/git/[name].git     #添加远程仓库到隔壁的中央仓库(滑稽)

chown -R git:git /usr/www     #修改服务器本地仓库的用户属组

2、在中央仓库中设置钩子
进入远程仓库的钩子目录


# cd /home/git/test.git/hooks

touch post-receive

vi post-receive

#!/bin/sh
unset GIT_DIR
DeployPath=/var/www         #这里的目录是你自己虚拟主机的目录

cd $DeployPath
git add . -A && git stash
git pull origin master


chmod +x post-receive

客户端 验证 Git Server

回到客户端,在 Git Bash 中使用如下指令从服务端中拷贝创建的 Git 仓库。


# git clone git@[server ip]:/home/git/[name].git

结束了~~~

参考地址:
https://www.jianshu.com/p/2f3093791d91 介绍如何配置git server
https://segmentfault.com/a/1190000009673544 介绍git钩子的使用

你可能感兴趣的:(centos 7 配置git server 详解)