
一、安装最新版git
(1)安装依赖包
```
yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel
yum install gcc perl-ExtUtils-MakeMaker
```
(2)卸载旧的git版本
```
yum remove git
```
(3)查看最新git版本号
登录https://www.kernel.org/pub/software/scm/git/
当前最新版为2.9.0
(4)下载&解压
```
cd /usr/src
wget https://www.kernel.org/pub/software/scm/git/git-2.9.0.tar.gz
tar -zxvf git-2.9.0.tar.gz
```
(5)编译安装
```
cd git-2.9.0
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
```
(6)检查git版本
```
git --version
git version 2.9.0
```
二、配置SSH免密码登录
(1)创建一个git用户,用来运行git服务
```
adduser git
```
(2)初始化git仓库,这里我们选择创建在/data/git/目录下
```
cd /
mkdir /data
cd data
mkdir /git
cd git
git init --bare XXXXX.git
```
(3)owner改为git
```
chown git:git XXXXX.git
```
(4)将RSA认证打开
a:
```
vim /etc/ssh/sshd_config
```
b:对应内容修改如下
```
1.RSAAuthentication yes
2.PubkeyAuthentication yes
3.AuthorizedKeysFile .ssh/authorized_keys
```
(5)客户端创建秘钥及公钥,这里使用的是TortoiseGit自带的PuTTYgen
a:点击Generate,并不停晃动鼠标,直到Key生成完毕

b:点击Save private key,保存秘钥到本地,记住该位置
c:不要关闭窗口。稍后需要将Key红框窗口内的内容,粘贴至git服务器的authorized_keys中。
d: 客户端创建 SSH 公钥和私钥
```
ssh-keygen -t rsa -C "tjjstan@qq.com"
```
注意,公钥的内容是此处窗口的内容,不是Save public key后生成文件中的内容
(6)git服务器上创建及配置authorized_keys
a:authorized_keys的位置,网上很多介绍的文章,没有说清楚,导致配置失败(登陆后还是需要输入密码)。authorized_keys的位置是在:如果你创建了用户username,那该文件应该创建在/home/username/.ssh/authorized_keys;如果你使用的是root用户,该文件应该创建在~/.ssh/authorized_keys(即root/.ssh/authorized_keys)。
本例创建了git用户
b:创建authorized_keys文件
```
cd /home/git
mkdir .ssh
vim authorized_keys
```
按“i”键,将刚才PuTTYgen红色窗口中生成的全部内容,赞贴进来。
按“ESC”键,输入“:wq”保存退出。
(7)设置权限
```
chmod 700 /home
chmod 700 /home/git
chmod 700 /home/git/.ssh
chmod 600 /home/git/.ssh/authorized_keys
chown git /home
chown git /home/git
chown git /home/git/.ssh
chown git /home/git/.ssh/authorized_keys
chown -R git:git /usr/local/www/zhibo_master
```
(8)测试
a:在客户端使用TortoiseGit连接测试,如果不用输入密码,则配置成功

b:如果不成功,可以在git服务器上,使用/usr/sbin/sshd -d 监控客户端ssh连接情况,查找出错原因
```
groupadd git_group
useradd -G git_group git
mkdir res.git
cd res.git/
git --bare init
```
---
来源:
- https: //cloud.tencent.com/info/5d8ab000c071773c5dc84c3300f992c3.html
- https: //www.cnblogs.com/dee0912/p/5815267.html#_labelTop