在linux服务器上搭建git服务器
写在前面,使用 centos7 root账户执行了以下所有操作。服务器上安装openssh, git 客户机上安装 git。
自己搭建的时候是昨天,写这篇文章是今天,所以,我自己没有严格按照以下步骤执行,但是反复浏览了几遍,应该没什么问题
- 创建一个git用户专门用来提交项目文件
#创建组
groupadd git
#指定用户所属组
useradd git -g git
- 禁止git用户登录shell
vi /etc/passwd
#找到类似下面的这一行
#git:x:1001:1001:,,,:/home/git:/bin/bash
#修改为
#git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell
- 创建证书验证
#如果权限不对,就会读取不到公钥,git就会一直提示你输入密码....
#创建目录,并且修改文件夹权限
mkdir /home/git/.ssh
chmod 755 /home/git/.ssh
#创建文件,用以保存公钥, 并修改权限
touch /home/git/.ssh/authorized_keys
chmod 644 /home/git/.ssh/authorized_keys
- 初始化git裸仓库
mkdir /home/gitrepo
chown git:git /home/gitrepo
#初始化仓库
git init --bare /home/gitrepo/gitname.git
#修改所属用户组 -R 表示递归修改目录下所有文件,文件夹
chown -R git:git /home/gitrepo/gitname.git
#以上, 在 /home/gitrepo 目录下创建了一个名为 gitname 的 git仓库
添加公钥
公钥交给管理员(其实就是你自己了),添加到 /home/git/.ssh/authorized_keys 文件中。直接操纵虚拟机无法复制公钥,可能要使用文件共享才行。如果是通过远程工具 putty, xshell, cmder等, 可以复制上去(亲测putty可以,其他不知道)
管理公钥还可以使用 [Gitosis] 工具,我等下再去了解。clone 克隆
#git@主机IP:端口号 项目地址
git clone git@192.168.43.128:/home/gitrepo/gitname.git
#如果不是默认端口,需要加上端口号,比如 20000
git clone git@192.168.43.128:20000/home/gitrepo/gitname.git
#我搭建成功之后...
$ git clone git@192.168.43.128:/home/gitrepo/ycrepo.git
Cloning into 'ycrepo'...
remote: Counting objects: 3, done.
remote: Total 3 (delta 0), reused 0 (delta 0)
Receiving objects: 100% (3/3), done.