CentOS搭建git服务器

前端之家收集整理的这篇文章主要介绍了CentOS搭建git服务器前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
一、安装Git
yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-devel
yum install git
二、创建Git用户组和用户

用来运行Git服务

groupadd git
adduser git -g git
三、创建证书登录

服务器中存储所有登录用户公钥的文件,该文件位于/home/git/.ssh/authorized_keys

若没有则创建它:

cd /home/git/
mkdir .ssh
chmod 700 .ssh
touch .ssh/authorized_keys
chmod 600 .ssh/authorized_keys

需要登录用户的公钥,位于客户端的id_rsa.pub文件中,如/Users/hanshaobo/.ssh/id_rsa.pub

将该用户的公钥存入git服务器端的authorized_keys文件中。

四、初始化git仓库
cd /home
mkdir gitrepo
chown git:git gitrepo/
cd gitrepo

git init --bare myproject.git

创建成功则提示

Initialized empty Git repository in /home/gitrepo/myproject.git/

把仓库所属用户改为git:

chown -R git:git myproject.git
五、克隆仓库

客户端进入项目所在目录中

git clone git@服务器ip:/home/gitrepo/myproject.git
六、禁止Git用户通过shell登录

vim打开/etc/passwd文件

git:x:503:503::/home/git:/bin/bash改为git:x:503:503::/home/git:/bin/nologin

参考

现在客户端可以通过 git clone 命令克隆远程仓库了,注意这里有些问题需要注意,SSH对公钥,私钥的权限和所有权的要求是非常严格的,总结如下:
1,下面两个目录的所有权必须是git(上面创建的git用户),所属组也应该是git,权限必须为700
①/home/git # chmod 700 /home/git
②/home/git/.ssh # chmod 700 /home/git/.ssh
2,公钥文件的所有权必须是git,所属组也必须是git,权限必须是644
①/home/git/.ssh/authorized_keys #c hmod 644/home/git/.ssh/authorized_keys
如果权限不对,会造成不能正常登录,报错信息:Permission denied (publickey,gssapi-with-mic.....)

参考

原文链接:https://www.f2er.com/centos/374355.html

猜你在找的CentOS相关文章