Centos7上搭建git服务器
1. 说明
Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。
Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。
Git 与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持。
虽然git不必依赖一个中心化的仓库来工作, 但是中心化的仓库也能带来很多好处, 比如方便团队写作, 本文主要讲述, 如何配置git服务器, 让多人通过ssh协议的方式访问服务器端的代码仓库.
2. 第一步: 在Centos7上安装git
1 | yum install git |
3. 第二步: 配置git用户
3.1. 添加git用户
1 | adduser git |
修改git用户的login shell.
为什么要修改login shell呢?
- 其一是出于安全考虑, 当你将对方用户的public key添加到authorized_key文件后, 如果git用户的登录shell依然是/bin/bash, 理论上其他用户是可以以git用户登录到服务器的, 这样会很不安全. 我能允许其他用户做的仅仅是clone, push, pull等操作.
- 其二 如果不改为git-shell其他用户也不能正常使用git
- 下面是git用户设置修改前和修改的比较
1 | 原始值 |
4. 第三步 配置sshd服务
我们知道git客户端可以使用ssh协议 或者https协议与服务器通信. 这里我们在服务器端配置的是ssh协议
4.1. 首先, 开启 SSH RSA 验证
1 | # 打开sshd配置文件 |
修改一下一些配置
1 | 原始值 修改后值 |
修改连接超时时间
1 | 原始值 |
设置ssh超时断连
1 | vim /etc/profile |
在HOSTNAME
HISTIZE
后追加timeout超时时间
TMOUT=600;600表示超过300秒无操作即断开连接。
并确保 “AuthorizedKeysFile” 的值为 “.ssh/authorized_keys”。
重启 SSH 服务。
1 | systemctl restart sshd.service |
5. 第四步 创建首个仓库
1 | # 进入目录 |
6. 第五步 授权用户访问
1 | # 创建目录 |
注意: 客户端使用ssh-keygen生成公钥私钥对, 如果已经有公钥, 可直接将公钥添加到服务器端的授权访问文件/home/git/.ssh/authorized_keys
7. 第五步 客户端克隆项目
客户端
1 | # 拷贝仓库 [server ip] 为服务端 IP |
如果能成功克隆项目, 表示服务器端安装和配置成功. 如果不能, 检查网络连接, 检查防火墙等等.
8. 关联阅读
Centos7上搭建git服务器