• Ubuntu 18.04搭建Git服务器


    学习链接:博客园廖雪峰

    前言

    前面已经贴了两个链接,为什么还要再写一篇呢,因为可能由于个人能力问题,我觉得上面两篇写的都有点简略,有些地方不太好理解,并不能一次性成功搭建,所以想根据自己踩过的坑再写一篇更详细的。所以如果有用户搜到了这篇文章且看完没有成功搭建,请评论中回复让我知道原因继续完善,谢谢!

    另外,本次安装不涉及权限管理,因为只是自己测试,还未用于生产环境。

    准备环境

    本次测试使用两台虚拟机,一台Ubuntu系统作为Git服务器(以下称为服务器),一台CentOS系统作为客户端(以下称为客户端)

    配置服务器

    第一步:检查服务器是否安装了ssh服务,这个没记错的话Ubuntu是自带有的,如果没有安装即可

    第二步:安装git,具体方法请看官网文档,包含了UbuntuCentOS系统的安装方法,安装完毕在终端中执行git --version命令,如正常输出版本号,说明安装成功。

    第三步:修改hsots配置,在hosts文件中将服务器的IP指向gitserver,将客户端的IP指向gitclient,如下图:

     

    第四步:在服务器上创建git用户,

    sudo useradd git

    然后赋予管理员权限,即将其加到/etc/sudoers文件中,添加时参考root的配置即可

    第五步:在服务器上创建代码仓库,这里我在/home/git/repo下执行命令:

    git bare init /home/git/sample.git

    成功执行后在服务器上创始了sample.git文件夹,如下图:

     

    然后将该文件夹所有者设为git,执行如下命令:

    sudo chown -R git:git sample.git

    到此,Ubuntu服务器的配置完毕,接下来配置客户端。

    客户端配置

    第一步:同样,在客户端确认ssh是否有安装,并安装git

    第二步:修改客户端的hosts文件,将服务器的IP指向gitserver

    第三步:执行ssh-keygen -t rsa命令生成密钥,如下图:

    注意,不要输入文件名,一直回车就好,不要输入任何内容,全部使用默认配置,成功后会自动在用户的home目录下创建.ssh文件夹,并将生成的公钥和密钥放到这个文件夹下。这里是要设置无密码登录服务器,因为服务器的密码不可能让所有人知道,提交代码时使用密钥进行身份验证

    第四步:将.ssh文件夹下生成的id_rsa.pub文件上传到服务器git用户home目录(/home/git)下,在服务器上使用git用户登录,查看home目录下是否有.ssh文件夹,如果没有,手动创建,如果有进入其中查看是否有名为authorized_keys文件,如果没有,同样手动创建即可。确认authorized_keys文件存在后执行cat ../id_rsa.pub>>authorized_keys命令,将客户端用户公钥导入到验证文件。

    第五步:在客户端上新建存储代码的文件夹,进入该文件夹,执行git clone git@gitserver:/home/git/repo/sample.git命令,该命令的作用是使用git用户身份从服务器拉取代码,若可正常拉代码且无需输入密码,说明搭建成功。之后就可以像公共仓库一样进行代码管理了。

    善后

    所有用户的公钥导入完毕后,最好git用户登录权限(git用户应该只用于代码管理,不用作其它事情,如果再要导入新的用户公钥可以用其它有管理员权限的帐户),具体做法是修改/etc/passwd文件中git的设置,如下图:

    将命令执行环境设成gitshell/usr/bin/git-shell而非/bin/bash,这样git用户无法通过ssh工具如putty远程登录系统了,但是可以通过sshgit中进行各种操作。

  • 相关阅读:
    iOS resign code with App Store profile and post to AppStore
    HTTPS科普扫盲帖 对称加密 非对称加密
    appid 评价
    使用Carthage安装第三方Swift库
    AngularJS:何时应该使用Directive、Controller、Service?
    xcode7 The operation couldn't be completed.
    cocoapods pod install 安装报错 is not used in any concrete target
    xcode7 NSAppTransportSecurity
    learning uboot how to set ddr parameter in qca4531 cpu
    learning uboot enable protect console
  • 原文地址:https://www.cnblogs.com/daner1257/p/10761849.html
Copyright © 2020-2023  润新知