在linux中搭建git服务器
个人觉得, 以下搭建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服务器的更多相关文章
- Windows/Linux 环境搭建Git服务器 + vs2012集成git
1. 下载.安装Git 我的系统是Windows 7,需要安装Git for Windows. 下载地址: http://code.google.com/p/msysgit/downloads/lis ...
- 【转】在Linux下搭建Git服务器
在 Linux 下搭建 Git 服务器 环境: 服务器 CentOS6.6 + git(version 1.7.1)客户端 Windows10 + git(version 2.8.4.windows. ...
- Linux Ubuntu搭建git服务器
1. 安装 openssh-server ,用于创建SSH服务. sudo apt-get install openssl-server 使用命令ps -e|grep ssh,查看ssh服务是否启动. ...
- 在 Linux 下搭建 Git 服务器
环境: 服务器 CentOS6.6 + git(version 1.7.1)客户端 Windows10 + git(version 2.8.4.windows.1) ① 安装 Git Linux 做为 ...
- 在Linux下搭建Git服务器的方法是什么样?
第一步 安装git:可以通过命令的方式快速安装,不同的linux的安装方法可能不一样,我的是采用的yum方法.ubuntu可以用apt-get命令.sudo yum install git 第二步 添 ...
- kali linux 下搭建git服务器
参考:http://www.cnblogs.com/dee0912/p/5815267.html https://www.liaoxuefeng.com/wiki/001373951630592960 ...
- linux 简单搭建git服务器
如果使用git的人数较少,可以使用下面的步骤快速部署一个git服务器环境. 1. 生成 SSH 公钥 每个需要使用git服务器的工程师,自己需要生成一个ssh公钥进入自己的~/.ssh目录,看有没有用 ...
- Linux下搭建Git服务器
1.安装Git 见 Jenkins持续集成环境部署 第四节 2.创建Git用户和用户组 groupadd git useradd git -g git 3.创建证书切换到git用户创建证书 su gi ...
- 在 Linux 下搭建 Git 服务器(yum安装)
服务端(linux): 1. 安装git [root@localhost ~]# yum -y install git 2. 增加一个git账户 为了管理的方便,在linux下面增添一个 " ...
随机推荐
- 流媒体学习一(RTP)
一.流媒体简介 随着Internet的日益普及,在网络上传输的数据已经不再局限于文字和图形,而是逐渐向声音和视频等多媒体格式过渡.目前在网络上传输音频/视频(Audio/Video,简称A/V)等多媒 ...
- iOS 面试题及答案
1.写一个NSString类的实现 + (id)initWithCString:(c*****t char *)nullTerminatedCString encoding:(NSStringEnco ...
- LeetCode Lowest Common Ancestor of a Binary Tree
原题链接在这里:https://leetcode.com/problems/lowest-common-ancestor-of-a-binary-tree/ 题目: Given a binary tr ...
- day01-基础内容
day01-基础内容 1.Linux: 1)开源的操作系统.免费的 主要用于服务器端,而Java主要是服务器端开发 2)Linux与Windows目录结构的区别: 2.1)文件系统不同 ...
- JavaScript:通过id来进行元素的取得
每一个HTML元素都使用id来进行一个标注,随后可以通过document.getElementById(“ID名称”)取得指定的ID元素对象,取得元素对象之后就可以对其进行操作. 但是document ...
- 两个数组 [n] [m] n>m 第一个数组的数字无序排列 第二个数组为空 取出第一个数组的最小值 放到第二个数组中第一个位置, 依次类推. 不能改变A数组,不能对之进行排序,也不可以倒到别的数组中。
方法一. protected int[] fun() { , , , , , , , -, , , , -, , , , , }; ]; ; ; ; i < b.Length; i++) { i ...
- centos shell编程6一些工作中实践脚本 nagios监控脚本 自定义zabbix脚本 mysql备份脚本 zabbix错误日志 直接送给bc做计算 gzip innobackupex/Xtrabackup 第四十节课
centos shell编程6一些工作中实践脚本 nagios监控脚本 自定义zabbix脚本 mysql备份脚本 zabbix错误日志 直接送给bc做计算 gzip innobacku ...
- SwipeRefreshLayout实现上拉加载下拉刷新
package com.example.swiperefreshlayoutdemo; import java.util.ArrayList;import java.util.HashMap; imp ...
- python复杂网络分析库NetworkX
NetworkX是一个用Python语言开发的图论与复杂网络建模工具,内置了常用的图与复杂网络分析算法,可以方便的进行复杂网络数据分析.仿真建模等工作.networkx支持创建简单无向图.有向图和多重 ...
- SmartGit as SVN Bridge
This page provides an introduction to SmartGit from an SVN users perspective and shows how the SVN w ...