centos7安装最新版git及设置SSH免密码登录配置

服务器 · 2018-12-22 ·

git是什么?git是目前世界上最先进的分布式版本控制系统,git有什么特点?简单来说就是:多人协同工作,方便维护,减少错误。

一、安装最新版git

step1:查看当前服务器上的git版本,如果版本过低卸载

# yum info git //查看当前git版本
# yum remove git //卸载git

step2:安装git相应的依赖包

# yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel
# yum install gcc perl-ExtUtils-MakeMaker

step3:下载最新的git版本,解压

提示:https://git-scm.com/ 官网查看最新的版本

# cd /usr/local //进入目录
# mkdir git //新建git目录
# cd git //计入git目录
# wget https://github.com/git/git/archive/v2.20.1.tar.gz  //下载最新git
# tar -zxvf v2.20.1.tar.gz //解压

step4:编译安装

# cd git-2.20.1
# make prefix=/usr/local/git all
# make prefix=/usr/local/git install
# echo "export PATH=$PATH:/usr/local/git/bin" >> /etc/profile
# source /etc/profile

step5:检查git版本

# git --version

git version 2.20.1 你已经成功安装了新版本的git

二、配置SSH免密码登录

step1:服务器上创建一个git用户,运行git服务

# adduser git

step2:服务器上初始化git仓库:这里我们选择/www/git/mla.git来作为我们的git仓库

# cd /www/git //如果目录不存在,新建一下
# git init --bare mla.git  //初始化git仓库
# chown -R git:git mla.git //给仓库的权限分配给git

step3: 服务器上将(/etc/ssh/sshd_config)配置中的RSA认证打开(将以下代码加入配置文件中

RSAAuthentication yes     
PubkeyAuthentication yes    
AuthorizedKeysFile .ssh/authorized_keys

step4: 在本地计算机(客户端)安装git for windows 软件,创建秘钥及公钥

$ git config --global user.name "mla"
$ git config --global user.email "admin@mla.xin"
$ ssh-keygen -t rsa -C "admin@mla.xin"

将公钥id_rsa.pub 复制出来,一会用到

step5:服务器上创建及配置authorized_keys

提示:authorized_keys的位置是在:如果你创建了用户username,那该文件应该创建在/home/username/.ssh/authorized_keys;如果你创建了用户git,那该文件应该创在/home/git/.ssh/authorized_keys;

创建authorized_keys文件

# cd home
# mkdir git
# cd git
# mkdir .ssh

在.ssh文件下创建authorized_keys 并将公钥粘贴进去。

step6:设置权限

# chmod 755 /home
# chmod 700 /home/git
# chmod 700 /home/git/.ssh
# chmod 600 /home/git/.ssh/authorized_keys
# chown git:git -R /home/git

step 7:测试git,通过git-bash执行

$ git clone git@ip:/www/git/mla.git

提示:如果还是需要密码,检查目录权限问题,出现问题大多情况下是权限不对

有的时候需要将数据传输到服务器上的不同目录,在服务的git仓库下的hooks目录下新建 post-receive 文件,配置以下代码至文件中去

git --work-tree=/www/你的目录1 checkout --force
git --work-tree=/www/你的目录2 checkout --force

记得再修改一下 仓库的权限


上一篇:
%