美文网首页
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