CentOS7安装Git服务器
这次安装的是git 2.27.0
准备安装
1. 删除原有Git, 由于系统默认使用的是1.8.3.1的git, 所以要先删除掉
# yum remove git
2. 下载git( 下载地址)
3. wget下载
wget https://github.com/git/git/archive/v2.27.0.tar.gz
4. 解压git
# tar -zxvf git-2.27.0.tar.gz
5. 移动到 usr/local
# mv git-2.27.0 /usr/local/
开始安装
1. 首先安装依赖
# yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel
# yum install gcc perl-ExtUtils-MakeMaker
2. 编译git, 编译不要着急,要花一点时间.
# cd /usr/local/git-2.27.0/
# make prefix=/usr/local/git-2.27.0 all
# make prefix=/usr/local/git-2.27.0 install
3. 修改PATH
# vim /etc/profile
在文件最后添加一下内容, 这里要注意路径哟..
export PATH="/usr/local/git-2.27.0/bin:$PATH"
4. 刷新PATH
# source /etc/profile
刷新后立即生效, 这是可以查询一下git的版本
# git --version
git version 2.27.0
5. 创建文件链接, 如果不执行这部, 后面提交会报错的...
# ln -s /usr/local/git-2.27.0/bin/git-upload-pack /usr/bin/git-upload-pack
# ln -s /usr/local/git-2.27.0/bin/git-receive-pack /usr/bin/git-receive-pack
6. 创建git用户和组
# groupadd git
# useradd git -g git
# passwd git
7. 切换到git用户, 注意. 创建仓库之类的一定要用git账户. 要不然权限设置很纠结的...
# su - git
8. 创建ssh
# mkdir /home/git/.ssh
# chmod 700 .ssh
# cd /home/git/.ssh
# ssh-keygen -t rsa
一路回车后就是结果了
9.创建authorized_keys
# touch authorized_keys
10. 创建一个git仓库文件夹用于存储git仓库,并设置权限
# mkdir /gitdata
# chown git:git /gitdata/
# chmod 777 /gitdata
11. 初始化一个git仓库用于测试
# cd /gitdata
# git init --bare mh.git
12. 启用公钥认证
# vim /etc/ssh/sshd_config
在文件末位加上一下内容, 主要要:wq保存哟..
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
13. 这时候需要在客户端安装git了.. 下载地址, 安装好之后使用Git Bush生成ssh
# ssh-keygen -t rsa -C "你的邮箱"
执行后会在你的 C:\Users\你系统的登录用户文件夹\.ssh 下面生成3个文件
14. 将ssh文件上传到ftp
15. 添加ssh
# cat /home/share/id_rsa.pub >> /home/git/.ssh/authorized_keys
这样ssh授权就加入了...以后就可以用这个邮箱进行版本管理了..
16. 克隆仓库, 在本地git bush中执行命令
# git clone git@106.16.166.222:/gitdata/mh.git
这样仓库就克隆到本地了...之后就是git之类的操作了...
# git add ./
# git commit -m "提交说明"
# git push
# git push origin master (如果上面报错,使用这个)
=======================
创建git多用户,进行git clone
创建用户组 ,如果已有git组
创建用户
useradd user1
useradd user2
禁用git用户的shell登录
git:x:1000:1000::/home/git:/usr/local/git-2.27.0/bin/git-shell
user1:1001:1001::/home/user1:/bin/bash
user2:x:1002:1002::/home/user2:/bin/bash
将用户添加到组
usermod -G git user1
usermod -G git user2
修改git仓库所在目录/gitdata/mh.git 的用户组为git,并修改目录权限。
chown -R git:git /gitdata/mh.git
chmod -R 777 /gitdata/mh.git
客户端测试
clinet# git clone git@106.16.166.222:/gitdata/mh.git
clinet# git clone user1@106.16.166..222:/gitdata/mh.git
clinet# git clone user2@106.16.166.222:/gitdata/mh.git
此时git clone 或 其他操作都需要输入密码。
配置ssh免密码
client# ssh-keygen 生成密钥对
client# ssh-copy-id user1@106.16.166.222 上述生成的公钥上传到106.16.166.222服务器上(第一次需要输入服务器 用户user1密码 )
clinet# git clone user1@106.16.166..222:/gitdata/mh.git 再次git clone,就不需要输入密码了
-----------------------------------
原文链接:
https://www.cnblogs.com/Troy-Lv5/p/9293846.html