centos7安装git服务端

使用SSH搭建GIT服务器,要做以下准备工作:
1、在服务器和客户端机器上分别安装git
2、在服务器上安装ssh服务
3、在客户端机器上安装SSH客户端

make clean 清除编译
yum remove git 卸载

安装服务端:

(1)首先先更新系统

sudo yum update

(2)安装依赖的包

sudo yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils-MakeMaker

(3)下载git源码并解压缩

wget https://Github.com/Git/Git/archive/v2.3.0.tar.gz
tar zxvf v2.3.0.tar.gz
cd git-2.3.0
make prefix=/usr/local/git all
如果出现错误:
libgit.a(utf8.o): In function reencode_string_iconv': /root/git-2.3.0/utf8.c:463: undefined reference tolibiconv’ libgit.a(utf8.o): In function reencode_string_len': /root/git-2.3.0/utf8.c:502: undefined reference tolibiconv_open’ /root/git-2.3.0/ut
make prefix=/usr/local/git install

安装libiconv
下载编译
cd /usr/local
wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gz
tar -zxvf libiconv-1.14.tar.gz
cd libiconv-1.14
./configure –prefix=/usr/local/libiconv && make && make install

创建一个软链接到/usr/lib
ln -s /usr/local/lib/libiconv.so /usr/lib
ln -s /usr/local/lib/libiconv.so.2 /usr/lib

然后回到git目录继续编译
make prefix=/usr/local/git all
make prefix=/usr/local/git install


**(5)此时你如果使用git --version 查看git版本的话,发现git仍然是1.8.1版本。这是因为它默认使用了"/usr/bin"下的git。**

你可以用下面的命令查看git所在的路径:

$ whereis git
git: /usr/bin/git /usr/local/git /usr/share/man/man1/git.1.gz


**(6)我们要把编译安装的git路径放到环境变量里,让它替换"/usr/bin"下的git。为此我们可以修改“/etc/profile”文件(或者/etc/bashrc文件)。**

sudo vim /etc/profile


然后在文件的最后一行,添加下面的内容,然后保存退出。

export PATH=/usr/local/git/bin:$PATH


**(8)然后再次使用git --version 查看git版本,发现输出2.3.0,表明安装成功。**

**安装gitosis:**

下载setuptools放到你想放的目录,我自己放在/usr/local/src这里

wget https://pypi.python.org/packages/source/s/setuptools/setuptools-19.0.tar.gz#md5=b921200449c8b52d62c7e70a47956b69https://pypi.python.org/pypi/setuptools#downloads)这个网址下载的,可以去下载最新
tar zxvf setuptools-19.0.tar.gz
cd setuptools-19.0
python setup.py install
cd /usr/local
git clone git://github.com/res0nat0r/gitosis.git
cd gitosis


**python setup.py install   显示Finished processing dependencies for gitosis==0.2即表示成功** 


**在Linux服务器上**
**第一步,先创建一个专门由于git仓库的一个账号吧,这样也方便进行管理 (如果已经有账号则不需要执行这步)**

sudo groupadd git #新建一个git用户组
sudo useradd git -m -s /sbin/nologin -d /home/git -g git #新建一个git用户,创建目录,并禁止shell登录,添加到git用户组
sudo useradd git -m -s /bin/bash -d /home/git -g git #新建一个git用户,创建目录,并允许shell登录,添加到git用户组



**第二步:新建一个git空仓库。**

切换到你用来管理git的账号,本人是git账号:su git 或者你用root 

cd /home/git/
mkdir www.laogao.com 项目文件夹,名字自定义
cd www.laogao.com
git init –bare


显示:Initialized empty Git repository in /home/git/www.laogao.com.git/ 表示已经建立成功

**第三步:添加用户的公钥**
1.切换到你操作git的用户,列如(su git)

mkdir /home/git/.ssh
chmod 700 .ssh
cd /home/git/.ssh
ssh-keygen -t rsa //默认会生成~/.ssh/id_rsa.pub公钥文件。
gitosis-init < /home/git/.ssh/id_rsa.pub //初始化


**初始化完出现3个文件**
**authorized_keys**
**id_rsa**
**id_rsa.pub**

最后:

chmod 600 authorized_keys
vim authorized_keys
“`

把你客户端生成的公钥复制进去就OK了
完成

### 三级标题:安装 Git 在 Linux 系统上搭建 Git 服务端的第一步是安装 Git。可以通过包管理器(如 `yum` 或 `apt`)安装 Git。以基于 `yum` 的系统(如 CentOS 或 RHEL)为例: ```bash # 安装 Git sudo yum install -y git # 查看 Git 版本以确认安装是否成功 git --version ``` 如果系统需要多个用户管理 Git 服务,则可以创建一个专用的 `git` 用户[^4]。 ### 三级标题:创建 Git 用户 创建一个专用的 `git` 用户可以增强系统的安全性,确保 Git 服务由独立的用户管理: ```bash # 添加 git 用户 sudo useradd git # 给 git 用户设置密码 sudo passwd git ``` 完成设置后,切换到 `git` 用户并继续后续操作: ```bash # 切换到 git 用户 su - git ``` ### 三级标题:初始化 Git 仓库 在服务器上创建一个目录用于存放 Git 仓库,并初始化一个裸仓库(bare repository),这是 Git 服务器的标准做法: ```bash # 创建仓库目录 mkdir -p /home/git/repositories # 进入仓库目录 cd /home/git/repositories # 初始化裸仓库 git init --bare example.git ``` ### 三级标题:配置 SSH 访问 为了确保客户端可以通过 SSH 协议访问 Git 仓库,需要配置 SSH 公钥认证: 1. 在客户端生成 SSH 密钥对(如果尚未生成): ```bash ssh-keygen -t rsa -b 4096 ``` 2. 将客户端的公钥文件(通常是 `~/.ssh/id_rsa.pub`)内容添加到服务器端的 `~/.ssh/authorized_keys` 文件中。 3. 确保 `.ssh` 目录和 `authorized_keys` 文件的权限正确: ```bash chmod 700 ~/.ssh chmod 600 ~/.ssh/authorized_keys ``` ### 三级标题:限制 Git 用户的 Shell 访问 为了进一步增强安全性,可以限制 `git` 用户仅能使用 Git 命令,而不能登录系统 shell。这可以通过修改 `/etc/passwd` 文件实现: ```bash # 修改 git 用户的 shell sudo usermod -s /usr/bin/git-shell git ``` 确保 `/etc/passwd` 文件中 `git` 用户的行如下所示: ``` git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell ``` ### 三级标题:客户端克隆仓库 客户端可以通过 SSH 协议克隆远程仓库: ```bash # 克隆远程仓库 git clone git@your_server_ip:/home/git/repositories/example.git ``` ### 三级标题:相关问题
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

LaooGao

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值