51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

Hexo云服务器搭建Git服务

Git服务器概述 {#Git服务器概述}

在实际的开发中,都是一个团队协同开发,共享代码资源。那么就需要服务器来存放团队的代码,需要用的时候从服务器下载。首先找一台电脑充当服务器的角色,每天24小时开机,其他每个人都从这个"服务器"仓库克隆一份到自己的电脑上,并且各自把各自的提交推送到服务器仓库里,也从服务器仓库中拉取别人的提交。可以自己搭建这台服务器,也可以使用GitHub、码云网站作为Git服务器。

搭建Git服务器 {#搭建Git服务器}

Centos7操作系统的云服务器搭建Git环境。

  1. 服务器端安装git
    (一)检查Centos有没有自带或者安装git,查询版本

    |-----------|------------------------| | 1 | git ---version |

    (二)如果存在,则查询git详情

    |-----------|---------------------| | 1 | rpm -qa git |

    (三)删除存在的git

    |-----------|---------------------------| | 1 | yum -y remove git |

    (四)如果没有查询到使用yum安装

    |-----------|----------------------------| | 1 | yum -y install git |

    若是其他Linux系统如Ubuntu等,请自行查询相应的安装命令。

  2. 服务器端创建git用户
    (一)创建用户组git

    |-----------|----------------------| | 1 | groupadd git |

    (二)新增git用户(所属git组)

    |-----------|-------------------------------| | 1 | useradd -m -g git git |

    (三)设置git密码

    |-----------|--------------------| | 1 | passwd git |

    (四)修改home目录下git文件的权限

    |-----------|-----------------------------| | 1 | chmod 755 /home/git |

    (五)切换至git用户

    |-----------|----------------| | 1 | su git |

    (六)进入git用户所在的home目录

    |-----------|------------| | 1 | cd |

    (七)创建.ssh文件,并赋予权限

    |-----------|--------------------------------------| | 1 | mkdir .ssh && chmod 700 .ssh |

    (八)在.ssh文件中创建公钥存储文件authorized_keys,同时赋予权限

    |-----------|----------------------------------------------------------------------| | 1 | touch .ssh/authorized_keys && chmod 600 .ssh/authorized_keys |

    .ssh目录的权限必须是700,而authorized_keys的权限必须是600,请确保权限是否正确。

  3. 服务器端创建git仓库
    (一)初始化空的git版本库

    |-----------|-----------------------------------------------------------------------------| | 1 | [git@localhost ~]$ git init --bare /home/git/repository/gittest.git |

    若创建成功,则会出现下述信息:Initialized empty Git repository in /home/git/repository/gittest.git
    修改文件归属者

    |-----------|---------------------------------------------| | 1 | chown git:git /home/git/repository/ |

  4. 服务器端打开RSA认证
    (一)切换root用户

    |-----------|------------| | 1 | su |

    (二)进入 /etc/ssh 目录,编辑 sshd_config,把下面内容的前面的#号去掉:

    |-------------------|------------------------------------------------------------------------------------------------| | 1 2 3 4 5 | RSAAuthentication yes PubkeyAuthentication yes AuthorizedKeysFile .ssh/authorized_keys |

    【注意】
    由AuthorizedKeysFile 得知公钥的存放路径是 .ssh/authorized_keys,实际上是 $Home/.ssh/authorized_keys,由于管理 Git 服务的用户是 git,所以实际存放公钥的路径是 /home/git/.ssh/authorized_keys
    (三)进入 /etc/ssh 目录,编辑 sshd_config,注释掉密码认证:

    |-----------|-------------------------------------| | 1 | #PasswordAuthentication yes |

    (四)重启 sshd 服务

    |-----------|----------------------------------------| | 1 | systemctl restart sshd.service |

  5. 客户端创建SSH公钥和私钥
    (一)生成ssh密钥。

    |-----------|-------------------------------------| | 1 | ssh-keygen -t rsa -C "邮箱地址" |

  6. 服务器端authorized_keys添加客户端公钥

    |-----------|-----------------------------------------------------------------------| | 1 | [root@localhost git]# cat id_rsa1.pub >> .ssh/authorized_keys |

    【注意】多个公钥都采用这种形式添加

  7. 禁止git用户SSH登录服务
    (一)编辑 /etc/passwd

    |-----------|---------------------------------------------| | 1 | [root@server01 git]# vi /etc/passwd |

    (二)找到:git:x:1000:1000::/home/git:/bin/bash
    (三)修改:git:x:1000:1000::/home/git:/bin/git-shell

  8. 客户端拉取服务端项目
    (一)进入Git仓库,获取项目绝对路径

    |-----------|------------------------------------------| | 1 | [root@server01 gittest.git]# pwd |

    (二)Git客户端克隆项目

    |-----------|-----------------------------------------------------------| | 1 | git clone git@IP:/home/git/repository/gittest.git |


赞(4)
未经允许不得转载:工具盒子 » Hexo云服务器搭建Git服务