详解在阿里云上搭建自己的git服务器

这篇文章我就来介绍一下如何在一台全裸的阿里云主机上搭建自己的git服务器。详细的介绍了每个步骤,具体如下:

1. 安装git

首先安装git,一般而言,现在的服务器已经内置了git安装包,我们只需要执行简单的安装命令即可安装。比如:

$ yum install git # centos
$ apt-get install git # ubuntu

上面是直接用root登陆服务器进行操作,也是为了演示方便。

git和mysql不一样,mysql在安装时,得安装mysql-server,即mysql服务器,git是分布式的,每一个安装了git的电脑,既是客户端,也是服务器,git与git之间可以相互通信,而我们所谓的git服务器,实际上和我们自己的电脑没有什么本质上的差别。但是,我们为了更有效的管理项目,都采取中心化的管理方式,因此创建一个“git服务器”,作为其他所有人提交代码的最终终端。

2.创建git用户及权限

我们当然不允许直接使用root来进行通信交互了,所以,我们创建一个git用户来作为今后提交代码的用户。

$ adduser git

执行这条命令之后,你发现在/home目录下多了一个git目录,按理来说,现在,你的系统中多了这个git用户,并且家目录在/home/git。但是,我们并不希望这个用户通过ssh连接到服务器上面去,所以,我们要禁止这个用户使用ssh连接上去进行操作。我们通过编辑一个权限文件来处理:

$ vi /etc/passwd

找到类似于

git:x:1001:1001:,,,:/home/git:/bin/bash

这样的行,你看到那个末尾的/bin/bash,就是允许ssh连接操作的权限,我们把它改为/user/bin/git-shell,结果如下:

git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell

这样处理好,git就不能ssh连上去了(实际上是可以的,只不过会闪退)。

我们还得给git分配一个密码,执行:

$ passwd git 123456(你的密码)

这个密码用在你后面提交代码的时候使用。

3.公钥

这个是git里面比较特殊的一步操作,通信的时候,客户端与服务器需要一个证书进行验证。操作方法很简单,首先在你自己的电脑上(ubuntu)生成自己的一个公钥:

$ cd ~
$ ssh-keygen -t rsa

这时你自己电脑上就有一个公钥了,但是在哪里呢?在.ssh目录下,.开头的文件夹都是隐藏的,但是可以cd进去。

$ cd .ssh
$ vi id_rsa.pub

这样就能看到你的公钥了,把所有的内容复制下来。接下来,我们去回服务器上面操作。

$ cd /home/git/
$ mkdir .ssh
$ cd .ssh
$ vi authorized_keys

如果是裸机,服务器上面/home/git目录下应该没有.ssh目录,所以我们自己创建,打开(自动创建)authorized_keys之后,把刚才复制下来的公钥黏贴进去,ok了,保存退出。

使用证书,主要是为了无需密码就可以提交代码。

4.初始化一个git仓库

我习惯把这类东西丢到/var下去,所以,我们在/var下面创建一个git目录

$ cd /var
$ mkdir git
$ chown -R git:git git
$chmod 777 git
$ cd git

接下来,我们用git命令初始化一个仓库:

$ git init --bare arepoforyourproject.git

初始化完成之后,这个空的仓库就OK了。

这里有一个细节,就是.git目录必须要有可读写权限,因为当我们在push的时候,是使用git用户推送到服务器上面去,会有一个写入的过程,如果不赋予可写权限,push就会失败。

5.克隆试试

回到你本地的电脑上,我们通过克隆来试试仓库是否可以使用:

$ git clone git@10.0.0.121:/var/git/arepoforyourproject.git

然后会提示你输入git的密码,输入进去,然后会再提示你克隆了一个空白的版本库。这说明服务器已经OK了。

6.多用户和权限管理

如果团队很小,把每个人的公钥收集起来放到服务器的/home/git/.ssh/authorized_keys文件里就是可行的。如果团队有几百号人,就没法这么玩了,这时,可以用Gitosis来管理公钥。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • 阿里云Linux-CentOS系统下-搭建Git服务器详解

     阿里云Linux-CentOS系统下-搭建Git服务器 步骤总结: 1. 安装git 首先确认服务器是否安装Git 在Xshell中输入命令:$ rpm -qa git 结果如下表示已经安装: 如果未安装就安装git 在Xshell中输入:$ yum install git 2. 创建一个git用户,用来运行git服务: 在Xshell中输入:$ sudo adduser git 此时在阿里云服务器的根目录:/home文件夹下新增一个文件夹git 按这个层级建立文件用于存放客户端用户的公钥:/

  • 详解在阿里云上搭建自己的git服务器

    这篇文章我就来介绍一下如何在一台全裸的阿里云主机上搭建自己的git服务器.详细的介绍了每个步骤,具体如下: 1. 安装git 首先安装git,一般而言,现在的服务器已经内置了git安装包,我们只需要执行简单的安装命令即可安装.比如: $ yum install git # centos $ apt-get install git # ubuntu 上面是直接用root登陆服务器进行操作,也是为了演示方便. git和mysql不一样,mysql在安装时,得安装mysql-server,即mysql

  • 详解Vue ElementUI手动上传excel文件到服务器

    概述 具体需求场景如下: 选择excel文件后,需要把导入的excel文件手动上传到后台服务器,并将导入成功后的统计结果显示出来.官网也有手动上传的示例,通过 action="url" 传入地址的方式,但在实际项目中请求需要自己配置,下面具体说明实现的方法. 说明: 在上传文件到展示统计结果,我们后端给了两个接口:首先调用文件上传接口,上传成功后,根据后端返回的mark再调用统计结果接口. 属性设置 .vue文件 <el-row> <div class="e

  • node链接mongodb数据库的方法详解【阿里云服务器环境ubuntu】

    本文实例讲述了node链接mongodb数据库的方法.分享给大家供大家参考,具体如下: 一.安装2.6版本以上的mongodb在云服务器上(百度就能查到安装方法,以及验证是否安装成功一般是mongodb –version): 二.因为mongodb的默认开启端口是27017,所以要在Ubuntu上开启这个端口: ufw allow 27017 ufw enable ufw reload ufw status //这是查看这个端口是否开启,iptables --list也可以查看 光在服务器开了端

  • ThinkPHP 在阿里云上的nginx.config配置实例详解

    具体代码如下所示: # For more information on configuration, see: # * Official English Documentation: http://nginx.org/en/docs/ # * Official Russian Documentation: http://nginx.org/ru/docs/ user nginx; worker_processes auto; error_log /var/log/nginx/error.log;

  • 详解如何在阿里云上安装mysql

    mysql作为轻量级开源数据库,在企业级的应用中非常的广泛.我之前用过mssql,oracle,postgresql,mysql.目前阿里云上面暂时没有oracle.就我个人使用情况来看,创建项目我会首选mysql. 卸载已有的mysql 系统中可能早已存在mysql数据库,所以在安装之前我们需要将其卸载掉. # rpm -qa|grep -i mysql 该命令将显示已经安装了的mysql软件,之后通过下面的命令将软件一个一个卸载掉就可以了.注意:这样的卸载是不彻底,不过这里够用了. # yu

  • 阿里云Linux CentOS 7 Docker部署使用gogs搭建自己的git服务器

    一.前言 Git是目前优秀和流行的源代码管理工具.而GitHub是一个面向开源及私有软件项目的托管云平台,但开源免费,私有收费.而公司出于商业化等目的需要搭建自己的源代码托管服务器.通过网上了解Gogs是一款不错git管理系统,而且是国内开源项目,今天我们就使用Gogs基于阿里云Linux CentOS 7 Docker部署搭建自己的git服务器. Gogs介绍(官网):https://gogs.io/ 二.步骤 1.  购买一个阿里云服务器,系统选择Linux CentOS 7 2.  doc

  • 阿里云CentOS7搭建Apache+PHP+MySQL环境

    最近要搭建一个阿里云的LMAP环境,选了CentOS7来做搭建. 1.Apache Centos7默认已经安装httpd服务,只是没有启动. 如果你需要全新安装,可以yum install -y httpd 启动服务:systemctl start httpd.service 设置开机自动启动:systemctl enable httpd.service Apache配置文件:/etc/httpd/conf/httpd.conf 项目默认存放目录为/var/www/html 你可以用vi来编辑或

  • 详解PHP使用OSS上传文件

    目录 一.安装阿里云 oss sdk 二.使用 1.获取 OSS AccessKeyId.AccessKeySecret 2.简易上传 Html 处理 3.控制器处理 OssImageController.php  4.service层处理 OssImageService.php 5.oss 实例及参数获取封装 AliOss.php 6.结果是可以上传成功 三.问题说明 一.安装阿里云 oss sdk 在网站根目录执行下面命令,安装oss sdk. composer require aliyun

  • 详解TensorFlow在windows上安装与简单示例

    本文介绍了详解TensorFlow在windows上安装与简单示例,分享给大家,具体如下: 安装说明 平台:目前可在Ubuntu.Mac OS.Windows上安装 版本:提供gpu版本.cpu版本 安装方式:pip方式.Anaconda方式 Tips: 在Windows上目前支持python3.5.x gpu版本需要cuda8,cudnn5.1 安装进度 2017/3/4进度: Anaconda 4.3(对应python3.6)正在安装,又删除了,一无所有了 2017/3/5进度: Anaco

  • 手把手教你在腾讯云上搭建hive3.1.2的方法

    环境准备 所有操作开始前,先确定hadoop版本已经装好.具体可以看我的另一篇博客 搭建hadoop3.x mysql安装 先把安装包放到software文件夹,并解压到mysql-lib中 [root@master software]# ll 总用量 1422372 -rw-r--r-- 1 root root 312850286 7月 2 15:00 apache-hive-3.1.2-bin.tar.gz -rw-r--r-- 1 root root 338075860 7月 2 09:3

随机推荐