1,安装Git所需依赖包
     # yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel
     # yum install gcc perl-ExtUtils-MakeMaker
 
2,卸载CentOS自带的git
     # yum remove git     
 
3,下载较新Git版本
     # mkdir /usr/src/tools
     # cd /usr/src/tools
     # tar -zxvf git-2.8.3.tar
 
4,安装Git并添加到环境变量中,Git安装路径为/usr/local/git
     # cd git-2.8.3.tar
     # make prefix=/usr/local/git all
     # make prefix=/usr/local/git install
     # echo "export PATH=$PATH:/usr/local/git/bin" >> /etc/bashrc
     # source /etc/bashrc
     
     完毕,查看git版本号
     # git --version 
 
5,创建用户git,用来运行Git服务
     # adduser git
     # su git
     # cd ~
     # mkdir .ssh
     # touch authorized_keys
     在git用户的家目录(/home/git/)创建一个.ssh的目录,将协同工作人员的SSH公钥添加到该目录的authorized_keys文件中。
 
6,收录客户端的SSH公钥到/home/git/.ssh/authorized_keys文件中
     客户端使用命令 ssh-keygen -t rsa -C "你的email地址" ,会在~/.ssh/id_rsa.pub生成SSH公钥,复制给管理员即可。 
 
7,配置服务器端ssh服务
     # vim /etc/ssh/sshd_config
     RSAAuthentication yes
     PubkeyAuthentication yes
     AuthorizedKeysFile /home/git/.ssh/authorized_keys #你的authorized_keys所在路径
 
8,初始化git仓库(裸库)
     # cd /home/git 
     # mkdir project.git
     # git init --bare project.git
 
9,禁用git用户shell登录
     # vim /etc/passwd
     git:x:1001:1001:,,,:/home/git:/bin/bash
     改为
     git:x:1001:1001:,,,:/home/git:/usr/local/git/bin/git-shell
 
 
现在客户端可以通过 git clone 命令克隆远程仓库了,注意这里有些问题需要注意,SSH对公钥,私钥的权限和所有权的要求是非常严格的,总结如下:
1,下面两个目录的所有权必须是git(上面创建的git用户),所属组也应该是git,权限必须为700
     ①/home/git     # chmod 700 /home/git
     ②/home/git/.ssh     # chmod 700 /home/git/.ssh
2,公钥文件的所有权必须是git,所属组也必须是git,权限必须是644
     ①/home/git/.ssh/authorized_keys #c hmod 644 /home/git/.ssh/authorized_keys
 
如果权限不对,会造成不能正常登录,报错信息:Permission denied (publickey,gssapi-with-mic.....)

CentOS下搭建Git服务器(基于SSH协议)的更多相关文章

  1. CENTOS下搭建git代码仓库 ssh协议

    centos服务器下搭建git仓库,使用ssh协议管理仓库代码权限    git官网(http://git-scm.com/) 使用ssh协议: 一.安装git,使用yum install git 或 ...

  2. CentOS下搭建Git服务器

    1.首先需要安装Git,可以使用yum源在线安装: [root@localhost Desktop]# yum install -y git 2.创建一个git用户,用来运行git服务 # addus ...

  3. CentOS下的Git服务器

    [Gitosis]CentOS下的Git服务器:Gitosis  [摘要]         详细介绍如何在CentOS上配置Gitosis        我们很多人知道Git可能是从Github开始的 ...

  4. Windows平台下搭建Git服务器的图文教程

    Git没有客户端服务器端的概念,但是要共享Git仓库,就需要用到SSH协议(FTP , HTTPS , SFTP等协议也能实现Git共享,此文档不讨论),但是SSH有客户端服务器端,所以在window ...

  5. Windows平台下搭建Git服务器的图文教程(转发)

    Git没有客户端服务器端的概念,但是要共享Git仓库,就需要用到SSH协议(FTP , HTTPS , SFTP等协议也能实现Git共享,此文档不讨论),但是SSH有客户端服务器端,所以在window ...

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

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

  7. CentOs上搭建git服务器

    CentOs上搭建git服务器 首先安装setuptools wget http://pypi.python.org/packages/source/s/setuptools/setuptools-0 ...

  8. Windows下搭建Git 服务器: BONOBO GIT SERVER + TortoiseGit

    本文将介绍如何在Windows操作系统下搭建Git服务器和客户端.服务器端采用的是Bonobo Git Server,一款用ASP.NET MVC开发的Git源代码管理工具,界面简洁,基于Web方式配 ...

  9. Windows操作系统下搭建Git服务器和客户端。

    本文将介绍如何在Windows操作系统下搭建Git服务器和客户端.服务器端采用的是Bonobo Git Server,一款用ASP.NET MVC开发的Git源代码管理工具,界面简洁,基于Web方式配 ...

随机推荐

  1. CS224n笔记二:word2vec

    如何表示词语的意思 语言学中meaning近似于"指代,代指,符号". 计算机中如何处理词语的意思 过去一直采用分类词典,计算语言学中常见的方式时WordNet那样的词库,比如NL ...

  2. DataSet与JSON互转

    DataSetConverter4Delphi https://github.com/ezequieljuliano/DataSetConverter4Delphi ----------------- ...

  3. window下搭建qt开发环境编译、引用ace

    工作中经常用到ace.tao等,在windwo下的c++开发工具基本上就是vs20xx这些工具,还有些就是类似编辑工具例如:source insight等,前者比较大,打开.编译运行比较慢,二期针对a ...

  4. 使用VS将 XML/Json 转为Model Class文件

    环境: VS2015 Win10   XML例子: <OTA_GetRerStatusRQ EchoToken=" B3BB9248255BD851AC94" UserNam ...

  5. 通过使用URLEncoder与URLDecoder进行编码和解码

    使用改方法必须导入 java.net包 <%@page import="java.net.*" %> 编码: 当要存储或者发送数据的时候使用,将编码后的字符串再发送或者 ...

  6. U盘免疫

    界面如下: 关键部分代码如下: void CImmunityUDlg::OnBnClickedButtonOk() { // TODO: 在此添加控件通知处理程序代码 TCHAR szPath[MAX ...

  7. mpvue 小程序加载不了图片 Error: Failed to load local image resource /images/xx.png the server responded with a status of 404 (HTTP/1.1 404 Not Found)

    mpvue开发小程序时候,要添加静态本地图片 <img src="../../images/bg.png" alt=""> 会报错: VM14878 ...

  8. NET中级开发工程师职责要求

    NET中级开发工程师岗位职责1.熟练掌握 WebApi, ASP.NET MVC, Entity Framework,.NET CORE等技术,精通JQuery.Vue.Bootstrap等前端开发框 ...

  9. 洛谷 题解 UVA658 【这不是bug,而是特性 It's not a Bug, it's a Feature!】

    [题意] 补丁在修正\(BUG\)时,有时也会引入新的\(BUG\),假定有\(n(n<=20)\)个潜在\(BUG\),和\(m(m<=100)\)个补丁,每个补丁用两个长度为\(n\) ...

  10. 使用redis PSUBSCRIBE实现实时任务

    PSUBSCRIBE可以监听键的过期事件 1.进行数据库的配置 notify-keyspace-events Ex 2.使用命令监听事件 psubscribe  __keyevnet@0__:expi ...