美文网首页
centos 7 配置git server 详解

centos 7 配置git server 详解

作者: 壹直卝注你 | 来源:发表于2019-03-26 17:49 被阅读0次

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

安装Open SSH Server

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


<!-- 查看 Open SSH Server 安装状态 -->
[root@localhost ~]# yum list installed | grep openssh-server

<!-- 安装 Open SSH 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

<!-- 在 Vim 模式下进入文件编辑模式 -->
# i
<!--按照如下表格修改参数-->

<!-- 修改完成后退出文本编辑模式 -->
#[esc]

<!-- 保存文件并退出 编辑模式   -->
# :wq

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

启动SSH服务

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


<!-- 停止 SSH 服务 -->
# sudo service sshd stop
<!-- 启动 SSH 服务 -->
# sudo service sshd start
<!-- 重启 SSH 服务 -->
# sudo service sshd restart
<!-- 查看 SSH 服务进程 -->
# ps -e | grep sshd

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

安装Git Server

使用yum安装git

<!-- 安装 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”

<!--  修改完之后, 重启SSH服务 -->
# sudo service sshd restart

创建git中央仓库

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

<!-- 进入目录 -->
# cd /home/git
<!-- 创建 Git 仓库 [name] 为仓库名 -->
# git init --bare [name].git
<!-- 创建目录 -->
# mkdir .ssh
<!-- 进入目录 -->
# cd .ssh
<!-- 创建文件 -->
# touch authorized_keys 
#打开客户端中的 “id_rsa.pub” 文件,将该文件中的全部内容拷贝至服务端中的 “authorized_keys” 文件中。
<!-- 指定为 Git 账户 -->
# 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
<!--新建一个文件post-receive-->
touch post-receive
<!-- 进入 -->
vi post-receive
<!--  编写shell脚本 -->
#!/bin/sh
unset GIT_DIR
DeployPath=/var/www         #这里的目录是你自己虚拟主机的目录

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

<!-- 给文件post-receive添加可执行权限 -->
chmod +x post-receive

客户端 验证 Git Server

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

<!-- 拷贝仓库 [server ip] 为服务端 IP -->
# 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 详解

      本文链接:https://www.haomeiwen.com/subject/mejxvqtx.html