0°

搭建Git服务器

系统环境

CentOS 7

安装Git

  1. 下载git


1
2
3
1wget https://github.com/git/git/archive/v2.14.1.zip
2
3

在这里插入图片描述

  1. 安装依赖


1
2
3
1sudo yum -y install zlib-devel openssl-devel cpio expat-devel gettext-devel curl-devel perl-ExtUtils-CBuilder perl-ExtUtils-MakeMaker
2
3

在这里插入图片描述

  1. 解压git


1
2
3
1unzip v2.14.1.zip
2
3

在这里插入图片描述

  1. 将git安装到/usr/local上

  2. 进入git-2.14.1文件夹


1
2
3
1cd git-2.14.1
2
3
  1. 编译


1
2
3
1make prefix=/usr/local all
2
3

1
2
1 **注:执行此命令可能会出现以下错误**
2

1
2
3
4
1/bin/sh: cc: 未找到命令
2make: *** [credential-store.o] 错误 127
3
4

1
2
1 原因是因为系统未安装gcc,这个是由于在安装操作系统时,没有选择安装开发工具,因为默认是不选中安装。执行以下命令安装即可
2

1
2
3
4
1yum -y install gcc automake autoconf libtool make
2yum install gcc gcc-c++
3
4
  1. 安装


1
2
3
1make prefix=/usr/local install
2
3
  1. 查看是否安装


1
2
3
4
1[root@VM_0_6_centos ~]# git --version
2git version 2.14.1
3
4

Git配置

  1. 添加git账号


1
2
3
1[root@VM_0_6_centos ~]# adduser git
2
3
  1. 修改git密码


1
2
3
4
5
6
1[root@VM_0_6_centos ~]# passwd git新的 密码:
2更改用户 git 的密码 。
3重新输入新的 密码:
4passwd:所有的身份验证令牌已经成功更新。
5
6

Git权限管理

配置服务器端ssh访问

  1. 切换到git账号


1
2
3
1su git
2
3
  1. 进入git账好主目录


1
2
3
1cd /home/git
2
3
  1. 创建ssh配置


1
2
3
1mkdir .ssh
2
3
  1. 进入刚创建的.ssh目录并创建authorized_keys文件,此文件存放客户端远程访问的 ssh的公钥


1
2
3
4
1cd .ssh
2touch authorized_keys
3
4
  1. 设置权限,此步骤不能省略,而且权限值也不要改,不然会报错。


1
2
3
4
1chmod 700 /home/git/.ssh/
2chmod 600 /home/git/.ssh/authorized_keys
3
4

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

  1. 进入.ssh目录


1
2
3
1cd /users/zyp/.ssh
2
3
  1. 查看文件夹


1
2
3
4
5
6
7
1-r--------@ 1 zyp  staff   902 11 25 18:21 centos
2-rw-------  1 zyp  staff  3247  5 25  2018 id_rsa
3-rw-r--r--@ 1 zyp  staff   743  5 25  2018 id_rsa.pub # 我们要用的私钥
4-rw-r--r--@ 1 zyp  staff  2168 12  3 09:19 known_hosts
5-rw-------@ 1 zyp  staff   902  8  2 11:13 zyp.dms
6
7
  1. 将私匙拷贝到git服务器


1
2
3
4
5
6
7
8
9
10
11
1# 以下命令是:把本地的id_rsa.pub文件拷贝到xxx服务器,登录xxx服务的账号是git。
2# 冒号后面默认就是git账号的主目录,最后文件被保存成laoma.pub
3# 注意:把域名换成你自己的或者ip,最后的文件名可以自己定,后面还有用。
4$ scp ./id_rsa.pub git@xxx:.ssh/laoma.pub
5# 执行上述命令可能会出现如下错误
6git@132.232.12.239: Permission denied (publickey,gssapi-keyex,gssapi-with-mic).
7# 修改目标服务器中 /etc/ssh/sshd_config 中的参数:
8# 将PasswordAuthentication no中的“no”改为yes,如果有注释,将注释去掉
9# 之后service sshd restart 重启sshd服务就可以了。
10
11

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

  1. 查看.ssh文件夹下是否有authorized_keys和zyp.pub文件


1
2
3
4
5
1ls -l
2-rw------- 1 git git   0 12月  3 23:04 authorized_keys
3-rw-r--r-- 1 git git 743 12月  3 23:19 zyp.pub
4
5
  1. 如果有,就把zyp.pub文件中的内容添加到authorized_keys中.


1
2
3
4
1$ cat laoma.pub >> authorized_keys
2# >> 是在文件后面追加的意思,主要如果用其他编辑器,每个ssh的pub要单独一行,建议用cat命令方便简单。
3
4
  1. 配置完成

测试连接

  1. 在客户端输入ssh git@ip地址


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

禁用客户端的shell连接

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


1
2
3
4
5
1git:x:1001:1001:,,,:/home/git:/bin/bash
2# 改为
3git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell
4
5
「点点赞赏,手留余香」

    还没有人赞赏,快来当第一个赞赏的人吧!