HCRM博客

如何搭建一个CentOS上的Git服务器?

CentOS上搭建Git服务器的过程相对简单,主要步骤包括安装必要的软件、创建用户和组、初始化Git仓库以及配置SSH访问权限,以下是详细步骤:

1、安装Git

如何搭建一个CentOS上的Git服务器?-图1
(图片来源网络,侵权删除)

安装依赖:在CentOS上,首先需要安装Git及其依赖包,可以通过yum命令来安装。

```bash

sudo yum install y curldevel expatdevel gettextdevel openssldevel zlibdevel perldevel

```

安装Git:接着安装Git本身。

```bash

如何搭建一个CentOS上的Git服务器?-图2
(图片来源网络,侵权删除)

sudo yum install y git

```

2、创建用户和组

创建用户组:为了管理方便,创建一个专门的用户组来运行Git服务。

```bash

sudo groupadd git

如何搭建一个CentOS上的Git服务器?-图3
(图片来源网络,侵权删除)

```

添加用户到组:创建一个新用户并将其添加到git组。

```bash

sudo adduser phper g git

```

设置用户密码:为新用户设置密码。

```bash

sudo passwd phper

```

3、初始化Git仓库

创建目录:选择一个目录来存放Git仓库,data/git/learngit.git。

```bash

sudo mkdir p /data/git

sudo chown phper:git /data/git

```

初始化裸仓库:裸仓库是没有工作区的仓库,通常用于共享目的。

```bash

sudo u phper git init bare /data/git/learngit.git

```

4、配置SSH访问

生成SSH密钥:在客户端生成SSH密钥对。

```bash

sshkeygen t rsa C "your_email@example.com"

```

上传公钥到服务器:将生成的公钥上传到服务器的authorized_keys文件中。

```bash

cat ~/.ssh/id_rsa.pub | ssh git@your_server 'cat >> ~/.ssh/authorized_keys'

```

设置文件权限:确保.ssh目录及其文件权限正确。

```bash

chmod 700 ~/.ssh

chmod 600 ~/.ssh/authorized_keys

```

5、克隆远程仓库

本地克隆:在本地机器上克隆远程仓库。

```bash

git clone git@your_server:/data/git/learngit.git

```

6、自动同步代码

修改postreceive脚本:为了让服务器自动拉取更新,需要修改钩子脚本。

```bash

#!/bin/sh

unset GIT_DIR

DeployPath="/alidata/www/project"

LogPath="/alidata/gitroot/project.git/hooks"

echo e "

=================date +"%Y%m%d %H:%M:%S" ===============

" >> $LogPath/gitsync.log 2>&1

cd $DeployPath

git pull origin master >> $LogPath/gitsync.log 2>&1

```

应用权限:确保脚本有执行权限。

```bash

chmod +x /path/to/your/postreceive

```

FAQs

1、为什么需要在服务器上禁用git用户的shell登录?

安全性考虑:禁用Shell登录可以防止攻击者通过SSH登录到git用户,从而增强系统的安全性,这是因为git用户的主要用途是运行git命令,而不是提供交互式shell会话。

2、如何解决“Permission denied (publickey)”错误?

检查公钥是否正确上传:确保你的公钥已经正确上传到服务器的authorized_keys文件中。

检查文件权限:确保.ssh目录及其下的authorized_keys文件权限设置正确(~/.ssh为700,authorized_keys为600)。

日志查看:查看/var/log/secure日志,检查是否有关于SSH密钥认证失败的详细信息。

分享:
扫描分享到社交APP
上一篇
下一篇