美文网首页
服务器搭建Git服务

服务器搭建Git服务

作者: 阿西Enzo | 来源:发表于2018-05-09 10:35 被阅读0次

    服务器搭建Git服务

    @(计算机基础)[git, 版本管理]


    [TOC]

    1.整体部署思路

        下载git 安装包(rpm)-->安装git服务-->测试git是否安装成功-->配置对外端口(git 使用ssh:22进行传输)-->创建git管理账户-->在git管理账户下创建仓库目录-->初始化git仓库-->客户端git工具安装-->客户端生成ssh公钥私钥-->服务器打开ssh的rsa认证-->导入客户端的ssh公钥-->配置相关文件的用户及权限-->客户端clone 仓库-->客户端修改-->提交-->push代码-->查看服务器代码是否同步
    

    2.安装

    1. 下载安装

    # 运行环境: linux center-os-7 64
    # 推荐使用 yum安装
    # 查看已安装程序中是否有git
    yum list installed | grep git
    # 查看git 安装源信息 本次安装版本 1.8.3.1(需要当前用户是管理员)
    sudo yum install -y git
    
    查看git 安装源信息

    2. 查看安装信息

    # 查看git 运行目录
    whereis git
    # 查看git 版本信息
    git --version
    
    查看安装后信息

    3.初始化配置

    1. 新建git管理账户

    # 查看是否已经存在git 用户
    id git
    id git: no such user
    # 创建git 用户用来管理git 服务
    sudo adduser git
    # 设置密码
    sudo passwd git
    

    2. 配置仓库目录及初始化

    # 切换至git 用户
    su git
    cd ~
    # 创建git 仓库根目录(该目录权限归为 git)
    mkdir -p ~/data/git
    # 创建测试仓库
    mkdir -p ~/data/git/gittest.git
    cd ~/data/git/
    # 保证该目录归git用户所有 
    ll 
    # 如果不是,请使用 chown 修改目录所有者
    chown -R git:git ~/data/git/gittest.git/
    # 使用 git 初始化仓库(将 git 用户加入到管理组 作为中央仓库,一定要加上shared,否则后去push 会deny)
    sudo git init --bare ~/data/git/gittest.git --shared
    # `Initialized empty Git repository in /home/git/data/git/gittest.git/.git/`
    # 查看仓库目录
    cd ~/data/git/gittest.git/.git
    ll
    
    查看仓库目录

    3. 配置相关目录权限

    # 修改目录权限
    su root
    chown -R git:git /home/git/data/git/gittest.git
    # 回到git
    su git
    
    修改目录权限

    4.客户端配置

    1. 客户端工具安装

    1.1 windows

    请下载git 工具,并安装(傻瓜式的,下下来点击安装即可,下载地址)

    1.2 MacOS

    Mac 推荐使用brew进行安装
    sudo brew install git

    1.3 clone remote repository

    # 克隆项目
    git clone git@serverIP:/home/git/data/git/gittest.git
    # 提示 unkonw host 需要配置ssh key
    
    clone remote repository

    2. 客户端获取ssh 公钥私钥

    2.1 生成ssh key

    推荐使用 ssh-keygen 工具,Mac系统自带, windows系统,可以通过上述的git 工具(git bash)内的ssh-keygen


    生成ssh key
    rsa

    5.服务端ssh配置

    1. 开放rsa认证

    • 切换至root 用户
    su root
    
    • 开放rsa认证 编辑 /etc/ssh/sshd_config
      vi /etc/ssh/sshd_config
    RSAAuthentication yes
    PubkeyAuthentication yes
    # The default is to check both .ssh/authorized_keys and .ssh/authorized_keys2
    # but this is overridden so installations will only check .ssh/authorized_keys
    AuthorizedKeysFile      .ssh/authorized_keys
    
    • 保存配置,并重启sshd 服务
      /etc/rc.d/init.d/sshd restart
      开放ssh 的rsa认证

    2. 导入客户端ssh rsa公钥证书

    # 上述中 AuthorizedKeysFile 指定的值 就是授权公钥证书存放位置,我们使用git进行连接的话,应该配置到/home/git下
    su git
    cd ~
    ls -al
    mkdir .ssh
    ls -al
    # windows 使用git bash 将公钥导入至服务器,Mac用户直接在terminal中运行
    ssh git@ServerIP 'cat >> .ssh/authorized_keys' < ~/.ssh/id_rsa.pub
    
    ssh

    6.客户端测试

    1. 连接测试

    git clone git@serverIP:/home/git/data/git/gittest.git
    # 成功!
    

    2. status\add\commit\push 测试

    # 创建readme.md
    cd ./gittest
    echo '#Hello Git'>readme.md
    # 查看状态
    git status
    # 将当前目录所有文件添加进工作空间
    git add .
    # 查看状态
    git status
    # 将本地工作空间 提交到本地仓库
    git commit
    # 将本地仓库分支 同步到远程分支上(这里如果是deny, 确认一下初始话中央git仓库初始化时,是否添加--shared参数)
    git push origin master:master
    
    image.png
    image.png
    image.png

    7.关闭git用户ssh登陆

    编辑/ect/passwd
    vi /ect/passwd
    修改
    git:x:502:504::/home/git:/bin/bash > git:x:502:504::/home/git:/bin/git-shell

    8. 参考

    参考: Meadows of Heaven《在 Linux 下搭建 Git 服务器》
    推荐: qiuri2008 《Git 仓库及管理》

    相关文章

      网友评论

          本文标题:服务器搭建Git服务

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