搭建Git服务器

系统环境

CentOS 7

安装Git

  1. 下载git
wget https://github.com/git/git/archive/v2.14.1.zip

在这里插入图片描述

  1. 安装依赖
sudo yum -y install zlib-devel openssl-devel cpio expat-devel gettext-devel curl-devel perl-ExtUtils-CBuilder perl-ExtUtils-MakeMaker

在这里插入图片描述

  1. 解压git
unzip v2.14.1.zip

在这里插入图片描述

  1. 将git安装到/usr/local上
    1. 进入git-2.14.1文件夹
    cd git-2.14.1
    
    1. 编译
    make prefix=/usr/local all
    
    注:执行此命令可能会出现以下错误
    /bin/sh: cc: 未找到命令
    make: *** [credential-store.o] 错误 127
    
    原因是因为系统未安装gcc,这个是由于在安装操作系统时,没有选择安装开发工具,因为默认是不选中安装。执行以下命令安装即可
    yum -y install gcc automake autoconf libtool make
    yum install gcc gcc-c++
    
    1. 安装
    make prefix=/usr/local install
    
    1. 查看是否安装
    [root@VM_0_6_centos ~]# git --version
    git version 2.14.1
    

Git配置

  1. 添加git账号
[root@VM_0_6_centos ~]# adduser git
  1. 修改git密码
[root@VM_0_6_centos ~]# passwd git新的 密码:
更改用户 git 的密码 。
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。

Git权限管理

配置服务器端ssh访问

  1. 切换到git账号
su git
  1. 进入git账好主目录
cd /home/git
  1. 创建ssh配置
mkdir .ssh
  1. 进入刚创建的.ssh目录并创建authorized_keys文件,此文件存放客户端远程访问的 ssh的公钥
cd .ssh
touch authorized_keys
  1. 设置权限,此步骤不能省略,而且权限值也不要改,不然会报错。
chmod 700 /home/git/.ssh/
chmod 600 /home/git/.ssh/authorized_keys

将客户端的ssh私匙上传到服务器

  1. 进入.ssh目录
cd /users/zyp/.ssh
  1. 查看文件夹
-r--------@ 1 zyp  staff   902 11 25 18:21 centos
-rw-------  1 zyp  staff  3247  5 25  2018 id_rsa
-rw-r--r--@ 1 zyp  staff   743  5 25  2018 id_rsa.pub # 我们要用的私钥
-rw-r--r--@ 1 zyp  staff  2168 12  3 09:19 known_hosts
-rw-------@ 1 zyp  staff   902  8  2 11:13 zyp.dms
  1. 将私匙拷贝到git服务器
# 以下命令是:把本地的id_rsa.pub文件拷贝到xxx服务器,登录xxx服务的账号是git。
# 冒号后面默认就是git账号的主目录,最后文件被保存成laoma.pub
# 注意:把域名换成你自己的或者ip,最后的文件名可以自己定,后面还有用。
$ scp ./id_rsa.pub git@xxx:.ssh/laoma.pub
# 执行上述命令可能会出现如下错误
git@132.232.12.239: Permission denied (publickey,gssapi-keyex,gssapi-with-mic).
# 修改目标服务器中 /etc/ssh/sshd_config 中的参数: 
# 将PasswordAuthentication no中的“no”改为yes,如果有注释,将注释去掉
# 之后service sshd restart 重启sshd服务就可以了。

服务器端添加客户端的SSH公钥

  1. 查看.ssh文件夹下是否有authorized_keys和zyp.pub文件
ls -l
-rw------- 1 git git   0 12月  3 23:04 authorized_keys
-rw-r--r-- 1 git git 743 12月  3 23:19 zyp.pub
  1. 如果有,就把zyp.pub文件中的内容添加到authorized_keys中.
$ cat laoma.pub >> authorized_keys
# >> 是在文件后面追加的意思,主要如果用其他编辑器,每个ssh的pub要单独一行,建议用cat命令方便简单。
  1. 配置完成

测试连接

  1. 在客户端输入ssh git@ip地址
ssh git@xxx.xxx.xx.xxx
# 连接成功
Last login: Mon Dec  3 23:31:05 2018 from x.xxx.x.xxx
# 第一次连接有警告,输入yes继续即可。如果可以连接上,那么恭喜你的ssh配置已经可以了。 

禁用客户端的shell连接

出于安全考虑,第二步创建的git用户不允许登录shell,这可以通过编辑/etc/passwd文件完成。找到类似下面的一行:

git:x:1001:1001:,,,:/home/git:/bin/bash
# 改为
git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值