个人觉得, 以下搭建git服务器的过程就像是在linux增加了一个用户, 而这个用户的登录shell是 git-shell, 太刨根问底的东西我也说不清楚, 还是看下面的过程吧. 过程参考了网上的文章, 在其中加入了一些我的个人理解.

过程:

1. 首先你要增加一个用户, 命令是:

sudo useradd git

这个用户作为你访问 git 服务的用户. 命令执行完之后, 你的 /home 文件夹里应该被创建了一个名为 git 的目录作为git用户的家目录 ,即 /home/git/ , 而且 /etc/passwd 和 /etc/shadow 中也自动增加了git 用户的一行.

2. 我们来修改git 这个用户的登录shell:

就是通过修改 /etc/passwd 这个文件啦. git 用户默认的shell应该是 /bin/bash ,也可能是其它的. 我们要做的就是将其改成 git-shell .不同的系统中git-shell的位置可能不一样, 可能是 /bin/git-shell , 也可能是 /usr/bin/git-shell . 反正修改成对应的就好了.

3. 接下来就是管理公钥:

记得我们使用github的时候要把我们的公钥在github中配置好之后才能向github 进行push操作, 所以我们搭建的git服务器也要有配置公钥, 只有握有与公钥相对应私钥的客户端才能与git服务器通信.

就是把公钥放到 /home/git/.ssh/authorized_keys 这个文件中, 如果有多一个公钥就一行一个. 在这之前这个文件可能是不存在的, 需要手动创建.

4. 为 /home/git/ 目录下的所有文件设置所有者和所属组均为 git

chown -R git:git /home/git

5. 现在基本的环境已经配置好了, 只是还没有容器, 所以我们来创建一个裸容器(也就是没有工作区的容器)

git init --bare /home/git/sample.git

--bare 选项表示创建一个裸容器

6. 同样要为刚才创建的容器设置所有者和所属组


chown -R git:git /home/git/sample.git

此处包括第 4 步中的所有者和所属组的设置基本可以说是必须的, 因为我们刚才创建git家目录中的文件的时候没说是使用什么用户身份进行操作, 如果不是使用git这个用户进行操作的, 会导致git用户不能访问上面的步骤中生成的那些文件, 所以还是应该修改一下这些文件的所有者和所属组.

7. 现在可以使用git服务器了

在本地测试可以这样

git clone git@localhost:/home/git/sample.git

也可以使用相对路径(相对于 git 用户的家目录)

git clone git@localhost:sample.git

刚才创建的裸容器是空的, 所以 clone 的时候 git 会提示你容器为空.

因为与 git 服务器交互需要使用私钥进行验证 , 所以如果你生成密钥对的时候输入了密码 , 在这个地方就算克隆容器也是需要密码的.

暂时先写到这.

在linux中搭建git服务器的更多相关文章

  1. Windows/Linux 环境搭建Git服务器 + vs2012集成git

    1. 下载.安装Git 我的系统是Windows 7,需要安装Git for Windows. 下载地址: http://code.google.com/p/msysgit/downloads/lis ...

  2. 【转】在Linux下搭建Git服务器

    在 Linux 下搭建 Git 服务器 环境: 服务器 CentOS6.6 + git(version 1.7.1)客户端 Windows10 + git(version 2.8.4.windows. ...

  3. Linux Ubuntu搭建git服务器

    1. 安装 openssh-server ,用于创建SSH服务. sudo apt-get install openssl-server 使用命令ps -e|grep ssh,查看ssh服务是否启动. ...

  4. 在 Linux 下搭建 Git 服务器

    环境: 服务器 CentOS6.6 + git(version 1.7.1)客户端 Windows10 + git(version 2.8.4.windows.1) ① 安装 Git Linux 做为 ...

  5. 在Linux下搭建Git服务器的方法是什么样?

    第一步 安装git:可以通过命令的方式快速安装,不同的linux的安装方法可能不一样,我的是采用的yum方法.ubuntu可以用apt-get命令.sudo yum install git 第二步 添 ...

  6. kali linux 下搭建git服务器

    参考:http://www.cnblogs.com/dee0912/p/5815267.html https://www.liaoxuefeng.com/wiki/001373951630592960 ...

  7. linux 简单搭建git服务器

    如果使用git的人数较少,可以使用下面的步骤快速部署一个git服务器环境. 1. 生成 SSH 公钥 每个需要使用git服务器的工程师,自己需要生成一个ssh公钥进入自己的~/.ssh目录,看有没有用 ...

  8. Linux下搭建Git服务器

    1.安装Git 见 Jenkins持续集成环境部署 第四节 2.创建Git用户和用户组 groupadd git useradd git -g git 3.创建证书切换到git用户创建证书 su gi ...

  9. 在 Linux 下搭建 Git 服务器(yum安装)

    服务端(linux): 1. 安装git [root@localhost ~]# yum -y install git 2. 增加一个git账户 为了管理的方便,在linux下面增添一个 " ...

随机推荐

  1. javascript 模式方面的学习

    看了好多网上的文章,基本上得到一个结论:一些写类工具函数或框架的写类方式本质上都是 构造函数+原型 1.用构造函数来定义类属性(字段).2.用原型方式来定义类的方法. 具体文章请参阅 JavaScri ...

  2. GIS 学习及参考站点

    地理信息论坛 GIS空间站 GISALL 广东水利厅 flex版的

  3. Emmet(之前叫Zencoding)插件安装

    按 ctr+shift+P,输入 install Package,找到emmet,确认安装 Package Control Messages======================== Emmet ...

  4. 使用jQuery为表单添加回车事件

    $(document).keypress(function(e){ if(e.which==13){ checkUserForm(); } });

  5. Android Error:Execution failed for task ':app:mergeDebugResources'. > Crunching Cruncher bg_btn.9.png

    使用Android Studio来进行图片背景设置,编译时发生了一个mergeDebugResources异常. 异常原因 这个异常的意思是对资源合并发生错误,那就是我使用的图片资源有问题,我使用的图 ...

  6. [BS-12] JSON的基础知识--百科

    JSON的基础知识--百科 http://baike.baidu.com/view/136475.htm

  7. [NetTopologySuite](1)线面相交

    用DotSpatial.Topology进行的测试,即使有NetTopologySuite类库进行测试: Polygon inputGeometry = null; LineString analys ...

  8. 强制回收和IDisposable.Dispose方法

    如果某对象的 Dispose 方法被调用一次以上,则该对象必须忽略第一次调用后的所有调用. 如果对象的 Dispose 方法被多次调用,该对象一定不要引发异常. 除Dispose 之外的实例方法在资源 ...

  9. mysql修改表名,列名,列类型,添加表列,删除表列

    alter table test rename test1; --修改表名 ); --添加表列 alter table test drop column name; --删除表列 ) --修改表列类型 ...

  10. 使用Adreno Profiler分析android游戏

    有时候我们需要对自己的游戏或者别人的游戏进行分析,比如我们需要了解一个引擎的大体渲染的流程,这个时候我们可以借助一些工具,在PC上我们可以使用Microsoft PIX.Intel GPA.Nvidi ...