美文网首页
在centos上搭建git服务器并自动同步代码到自己的blog站

在centos上搭建git服务器并自动同步代码到自己的blog站

作者: 七里小晴天 | 来源:发表于2016-11-18 11:01 被阅读597次

    vps(系统centos6.2,git版本1.7)

    1.安装git

    方法一.yum install -y git(最简单的方法)
    方法二.下载git源码编译安装,需要安装编译工具(不做介绍)

    2.建立git用户(可选)

    注意:有些系统在你安装git的时候,可能已经给你自动建立了git用户,因此你可以忽略这一步.
    添加git用户

    //自动在home下建立git目录
    useradd git
    //切换到/home下查看
    ls -al
    //注意一定要注意查看git目录的拥有者(必须是git)和所属用户组(可以是git或者root),
    //否则在以后设置免密码clone和push的时候会出现Permission denied error的错误.
    //修改git目录拥有者和所属群组为git
    chown -R git:git git
    
    F9D26F43-5BBE-4C51-8E72-8F94171EBD94.png

    4.修改git用户的操作权限

    vi /etc/passwd
    //找到git用户的那一行,修改如下:不允许git用户的ssh登录
    git:x:500:500::/home/git:/usr/bin/git-shell
    

    3.在服务器上建立裸版本库

    mkdir /home/testgit
    //这里 git init 是初始化空仓库的意思,而参数 --bare 是代表创建裸仓库,而参数 --bare 是代表创建裸仓库
    git init --bare sample.git
    注意:一定要查看testgit目录的拥有者(必须是git)和所属用户组(可以是git或者root),否则在以后设置免密码clone和push的时候会出现Permission denied error的错误.
    

    5.clone远程仓库

    cd Desktop
    git clone git@115.159.146.94:/home/testgit/sample.git 
    //这时候会让你输入git的密码,但是我们并没有设置git用户的密码
    

    6配置公钥进行免密码登录 clone和push

    mac下的公钥和密钥在 ~/.ssh下

    cd ~/.ssh
    ls -a
    //会看到如下文件(如果没有请查看如何生成公钥和密钥)
    id_rsa(密钥)   id_rsa.pub(公钥)  known_host
    
    //生成公密钥 终端
    ssh-keygen -t rsa
    Generating public/private rsa key pair.
    Enter file in which to save the key (/home/fdipzone/.ssh/id_rsa): 这里输入要生成的文件名
    Enter passphrase (empty for no passphrase): 这里输入密码 
    Enter same passphrase again: 这里重复输入密码
    Your identification has been saved in /home/fdipzone/.ssh/id_rsa.
    Your public key has been saved in /home/fdipzone/.ssh/id_rsa.pub.
    The key fingerprint is:
    f2:76:c3:6b:26:10:14:fc:43:e0:0c:4d:51:c9:a2:b0
    The key's randomart image is:
    +--[ RSA 2048]----+
    |    .+=*..                  |
    |    . += +                  |
    | o oo+ |
    | E . . o |
    | ..S. |
    | .o . |
    | .o + |
    | ...oo |
    | +. |
    +-----------------+
    //密钥生成成功
    

    在centos

    cd /home/git/.ssh
    //建立授权文件 authorized_keys,文件不存在则自己新建一个
    //将本地机器上的 id_rsa.pub(公钥)里面的复制一份粘贴到centos下/home/git/.ssh/authorized_keys
    

    authorized_keys文件看起来是这样的,上下两个免密码登录用户的公钥 ,上下分开.

    注意: .ssh 和 authorized_keys的拥有者必须是git,否则还是会有权限不足的问题

    Paste_Image.png

    8.同步代码到自己的博客站点目录

    比如说我们的博客有一点点的优化,但是push代码之后无法立即查看效果,这个地方我们就需要自动同步就派上用场了。自动同步功能用到的是 git 的钩子功能,

    cd /home/testgit/sample.git
    cd hooks
    //这里我们创建post-receive文件
    vi post-receive
    //在该文件里输入以下内容./home/www就是我blog站点的目录
    #!/bin/bash
    git --work-tree=/home/www checkout -f
    //保存退出后,将该文件用户及用户组都设置成
    gitchown git:git post-receive
    //由于该文件其实就是一个shell文件,我们还应该为其设置可执行权限
    chmod +x post-receive
    

    此时clone自己的blog站点,修改一下网站的名称,push道git服务器,刷新网站首页,是不是发现自己blog的名称变了!

    9.最后再记录一下,配置ssh 免密码登录(so easy)

    复制自己主机下的公钥内容
    在自己的vps下

    vi  /root/.ssh/ authorized_keys
    

    //复制密钥内容进去,好了,现在ssh也可以免密码登录了

    相关文章

      网友评论

          本文标题:在centos上搭建git服务器并自动同步代码到自己的blog站

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