Git服务器概述

在实际的开发中,都是一个团队协同开发,共享代码资源。那么就需要服务器来存放团队的代码,需要用的时候从服务器下载。首先找一台电脑充当服务器的角色,每天24小时开机,其他每个人都从这个“服务器”仓库克隆一份到自己的电脑上,并且各自把各自的提交推送到服务器仓库里,也从服务器仓库中拉取别人的提交。可以自己搭建这台服务器,也可以使用GitHub、码云网站作为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/
  1. 服务器端打开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
  2. 客户端创建SSH公钥和私钥
    (一)生成ssh密钥。

    1
    ssh-keygen -t rsa -C "邮箱地址"
  3. 服务器端authorized_keys添加客户端公钥

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

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

  4. 禁止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

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

    1
    [root@server01 gittest.git]# pwd

    (二)Git客户端克隆项目

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