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.....)

最新文章

  1. CDR VBA鼠标选择
  2. [原创]kali linux下破解wifi密码以及局域网渗透
  3. JDBC 精度
  4. 关于禁止ipad的home键解决方法
  5. 搞ACM的你们伤不起
  6. Java设计模式学习资源汇总
  7. 基于Http原理实现Android的图片上传和表单提交
  8. ORACLE行转列(行转1列,行转多列)
  9. 使用Identity Server 4建立Authorization Server (1)
  10. sql查询语句报错处理——ERROR: failed to find conversion function from unknown to text
  11. async和enterproxy控制并发数量
  12. convert(varchar(10),字段名,转换格式
  13. amd显卡更新最新驱动鼠标顿卡的解决方法
  14. 关于Idea里设置Terminal为Git/bin/bash.exe中文乱码的问题的终极解决方案
  15. [JLOI2014]聪明的燕姿(搜索)
  16. Mysql 5.* 数据库备份及导入
  17. 如何在linux下开启FTP服务
  18. Excel中concatenate函数的使用方法
  19. 获取静态 selected的当前的value的值
  20. Netflix开源类库archaius(一)概述

热门文章

  1. Android View 滚动边界的测量
  2. jQuery.media.js的使用方法
  3. 快速开发平台 WebBuilder 8 发布
  4. hdu4633_Polya定理
  5. Android-小小设置永久解决程序因为未捕获异常而异常终止的问题
  6. 再说Java集合,subList之于ArrayList
  7. RestTemplate使用不当引发的问题分析
  8. 大白话5分钟带你走进人工智能-第30节集成学习之Boosting方式和Adaboost
  9. ZooKeeper —— 单机环境和集群环境搭建
  10. Spring Framework 组件注册 之 FactoryBean