个人觉得, 以下搭建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. Linux: 20 Iptables Examples For New SysAdmins

    Linux comes with a host based firewall called Netfilter. According to the official project site: net ...

  2. appium关于定位元素

    Windows上定位元素我用的是uiautomatorviewer 这个工具在你的SDK-tools目录下,点击uiautomatorviewer.bat启动,注意appium在跑的时候是取不到的 工 ...

  3. JDK的安装!力求简单明了!

    作为一个java语言的开发人员,第一件事就是安装JDK,就像当兵的要有刀枪,学生要有书本纸笔一样!话不多说,配置如下: 1.下载一个JDK安装包,解压到任意目录,我解压的是:C:\Tools\Java ...

  4. 话说 依赖注入(DI) or 控制反转(IoC)

    科普:首先依赖注入和控制反转说的是同一个东西,是一种设计模式,这种设计模式用来减少程序间的耦合,鄙人学习了一下,看TP官网还没有相关的文章,就写下这篇拙作介绍一下这种设计模式,希望能为TP社区贡献一些 ...

  5. ionic 白名单

    1.在本目录下执行 cordova plugin add cordova-plugin-whitelist 2.在config.xml里添加 <allow-navigation href=&qu ...

  6. 第七篇 Integration Services:中级工作流管理

    本篇文章是Integration Services系列的第七篇,详细内容请参考原文. 简介在上一篇文章,我们创建了一个新的SSIS包,学习了SSIS中的脚本任务和优先约束,并检查包的MaxConcur ...

  7. navicat premium 导出表结构

    1.右键 点击public,然后选择 数据传输 2.选择数据库对象,目标选择文件,选择文件的路径,然后开始

  8. Hadoop学习笔记: sqoop配置与使用

    sqoop即SQL-to-Hadoop,是一个把数据从关系型数据库导入到Hadoop系统中的工具(HDFS,HIVE和HBase),也可以将数据从Hadoop导入到关系型数据库.本文以sqoop 1. ...

  9. 转:VS中的路径宏 vc++中OutDir、ProjectDir、SolutionDir各种路径

    http://www.cnblogs.com/lidabo/archive/2012/05/29/2524170.html

  10. Java基础之集合框架——在文件中存储地图(TryPhoneBook2)

    控制台程序. import java.io.*; public class Person implements Comparable<Person>, Serializable { // ...