美文网首页
Git服务器搭建--实践篇

Git服务器搭建--实践篇

作者: As_breath | 来源:发表于2020-06-21 10:53 被阅读0次

    下载安装 git

    Git 是一款免费、开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。

    此实验以 CentOS 7.2 x64 的系统为环境,搭建 git 服务器。


    安装依赖库和编译工具

    为了后续安装能正常进行,我们先来安装一些相关依赖库和编译工具

    yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel

    安装编译工具

    yum install gcc perl-ExtUtils-MakeMaker

    下载 git

    选一个目录,用来放下载下来的安装包,这里将安装包放在 /usr/local/src 目录里

    cd /usr/local/src

    到官网找一个新版稳定的源码包下载到 /usr/local/src 文件夹里

    wget https://www.kernel.org/pub/software/scm/git/git-2.10.0.tar.gz

    解压和编译

    解压下载的源码包

    tar -zvxf git-2.10.0.tar.gz

    解压后进入 git-2.10.0 文件夹

    cd git-2.10.0

    执行编译

    make all prefix=/usr/local/git

    编译完成后, 安装到 /usr/local/git 目录下

    make install prefix=/usr/local/git

    配置环境变量

    将 git 目录加入 PATH

    将原来的 PATH 指向目录修改为现在的目录

    echo 'export PATH=$PATH:/usr/local/git/bin' >> /etc/bashrc

    生效环境变量

    source /etc/bashrc

    此时我们能查看 git 版本号,说明我们已经安装成功了。

    git --version

    创建 git 账号密码

    创建 git 账号

    为我们刚刚搭建好的 git 创建一个账号

    useradd -m gituser

    然后为这个账号设置密码

    passwd gituser

    控制台输入创建密码后,输入您自定义的密码,并二次确认。

    初始化 git 仓库并配置用户权限

    创建 git 仓库并初始化

    我们创建 /data/repositories 目录用于存放 git 仓库

    mkdir -p /data/repositories

    创建好后,初始化这个仓库

    cd /data/repositories/ && git init --bare test.git

    配置用户权限

    给 git 仓库目录设置用户和用户组并设置权限

    chown -R gituser:gituser /data/repositories

    chmod 755 /data/repositories

    [查找 git-shell 所在目录] , 编辑 /etc/passwd 文件,将最后一行关于 gituser 的登录 shell 配置改为 git-shell 的目录[?]如下

    示例代码:/etc/passwd

    gituser:x:500:500::/home/gituser:/usr/local/git/bin/git-shell

    如果按照刚才的步骤执行, 这个位置应该是 /usr/local/git/bin/git-shell, 否则请通过 which git-shell 命令查看位置

    安全目的, 限制 git 账号的 ssh 连接只能是登录 git-shell

    使用搭建好的 Git 服务

    克隆 test repo 到本地

    cd ~ && git clone gituser@<您的 CVM IP 地址>:/data/repositories/test.git

    客户端Git操作免密(假设当前处于root账户,服务端git指定账户为gituser)

    1、使用SSH协议

    1.1在服务器指定的git专用账户主目录下,查看是否存在 .ssh文件夹,是否存在.ssh/authorized_keys文件,如果不存在,则通过

    cd /home/gituser

    mkdir .ssh && chmod 700 .ssh

    touch .ssh/authorized_keys && chmod 600 .ssh/authorized_keys

    (非gituser用户创建的情况下,需要额外将文件归属权赋予gituser)

    chown -R gituser:gituser .ssh/authorized_keys

    ( 要保证.ssh和authorized_keys都只有用户自己(root除外)有写权限。否则验证无效  )

    (以上方法可通过解除gituser shell限制,切换到该用户下,在运行ssh-keygen -t rsa 生成)

    1.2在客户端主目录找到 .ssh目录下的id_rsa.pub文件,拷贝到服务端 authorized_keys文件即可(一个客户端id 一行)

    $ cat /tmp/id_rsa.john.pub >> ~/.ssh/authorized_keys

    $ cat /tmp/id_rsa.josie.pub >> ~/.ssh/authorized_keys

    如客户端未生成公钥,则运行

    ssh-keygen -t rsa -C 'xxxx@email.com'

    生成对应的公钥,再上传服务器。

    其后,在客户端即可指定ssh协议克隆git工程

    git clone gituser@gitserver:/data/repo/test.git

    如果已经使用https协议克隆了,那么按照如下方法更改协议(未验证):

    git remote set-url origin gituser@gitserver:/data/repo/test.git

    2、添加git config(未验证)

    git config --global credential.helper store

    执行此命令后,用户主目录下的.gitconfig文件会多了一项:[credential]

    helper = store

    重新git push就不需要用户名密码了

    3、使用文件创建用户名和密码(未验证)

    文件创建在用户主目录下:

    touch .git-credentials

    vim .git-credentials

    https://{username}:{password}@github.com       

    参考链接:

    https://git-scm.com/book/zh/v2/%E6%9C%8D%E5%8A%A1%E5%99%A8%E4%B8%8A%E7%9A%84-Git-%E9%85%8D%E7%BD%AE%E6%9C%8D%E5%8A%A1%E5%99%A8

    https://gitee.com/progit/4-%E6%9C%8D%E5%8A%A1%E5%99%A8%E4%B8%8A%E7%9A%84-Git.html#4.4-%E6%9E%B6%E8%AE%BE%E6%9C%8D%E5%8A%A1%E5%99%A8

    https://todebug.com/Tips/

    相关文章

      网友评论

          本文标题:Git服务器搭建--实践篇

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