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.....)

参考


猜你喜欢

转载自blog.csdn.net/taambernk520/article/details/80270075