前言:本文将介绍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钩子的使用
网友评论