系统环境
CentOS 7
安装Git
-
下载git
1 2 3
| 1wget https://github.com/git/git/archive/v2.14.1.zip
2
3 |
-
安装依赖
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 |
-
解压git
1 2 3
| 1unzip v2.14.1.zip
2
3 |
-
将git安装到/usr/local上
-
进入git-2.14.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 2 3
| 1make prefix=/usr/local install
2
3 |
-
查看是否安装
1 2 3 4
| 1[root@VM_0_6_centos ~]# git --version
2git version 2.14.1
3
4 |
Git配置
-
添加git账号
1 2 3
| 1[root@VM_0_6_centos ~]# adduser git
2
3 |
-
修改git密码
1 2 3 4 5 6
| 1[root@VM_0_6_centos ~]# passwd git新的 密码:
2更改用户 git 的密码 。
3重新输入新的 密码:
4passwd:所有的身份验证令牌已经成功更新。
5
6 |
Git权限管理
配置服务器端ssh访问
-
切换到git账号
-
进入git账好主目录
-
创建ssh配置
-
进入刚创建的.ssh目录并创建authorized_keys文件,此文件存放客户端远程访问的 ssh的公钥
1 2 3 4
| 1cd .ssh
2touch authorized_keys
3
4 |
-
设置权限,此步骤不能省略,而且权限值也不要改,不然会报错。
1 2 3 4
| 1chmod 700 /home/git/.ssh/
2chmod 600 /home/git/.ssh/authorized_keys
3
4 |
将客户端的ssh私匙上传到服务器
-
进入.ssh目录
1 2 3
| 1cd /users/zyp/.ssh
2
3 |
-
查看文件夹
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 |
-
将私匙拷贝到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公钥
-
查看.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 |
-
如果有,就把zyp.pub文件中的内容添加到authorized_keys中.
1 2 3 4
| 1$ cat laoma.pub >> authorized_keys
2# >> 是在文件后面追加的意思,主要如果用其他编辑器,每个ssh的pub要单独一行,建议用cat命令方便简单。
3
4 |
- 配置完成
测试连接
-
在客户端输入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 |