个人觉得, 以下搭建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. android Edittext自定义输入字符和类型

    android提供了两种方式 一种是setInputType 一种是setKeyListener 直接上代码,有注释 import android.app.Activity; import andro ...

  2. HttpPost发送Json

    1.public static JSONObject post(String url,JSONObject json){ 2. HttpClient client = new DefaultHttpC ...

  3. iOS 拉伸图片

    UIEdgeInsets:四个参数,会填入上左下右几个值,这几个值,代表着距离边界的这几个点描绘的区域,是不会拉伸的.所以,到时候,计算清楚这几个值就可以了.

  4. php-001-win7 环境下 wamp 的至简部署

    此文主要记录学习 PHP 开发环境 wamp 的至简部署.敬请各位小主参阅,若有不足之处,敬请大神指正,不胜感激! 首先依据自身的操作系统选择,进入 wamp 的网站 :http://www.wamp ...

  5. JavaScript实现在textbox输入时自动去数据库匹配并找出类似值列出,选择后记得将值填入本textbox及下一个textbox

    1. <script src='<%= Application["rootURL"] %>JS/jquery-1.4.1.min.js' type="t ...

  6. Ioc-Autofac的使用

    serveral IoC Framework  has  already exist on the market,Take account of compenhensive factor,Autofa ...

  7. LeetCode Closest Binary Search Tree Value II

    原题链接在这里:https://leetcode.com/problems/closest-binary-search-tree-value-ii/ 题目: Given a non-empty bin ...

  8. Number类型

    这是计算基础,复杂的以后不充. 1.Number(); var box = { toString :function(){ return '123'; } }; alert(Number(box)); ...

  9. ubuntu网络配置

    本文介绍ubuntu中的网络配置方法. ubuntu需要在/etc/network/interfaces文件中设置网络配置,基本的格式如下: auto <网卡名> iface <网卡 ...

  10. 提高你的C#程序编码质量

    摘自陆敏技之<编写高质量代码:改善C#程序的157个建议>,编写C#程序代码时应考虑代码效率.安全和美观,可参考下述建议.想成为一名合格的搬砖工,牢记吧!! 基本语言要素 1.正确操作字符 ...