ubuntu 22 搭建git服务

第一步,安装git

bash 复制代码
sudo apt-get install git

创建用户信息

bash 复制代码
git config --global user.name soft

第二步,创建一个git用户,用来运行git服务:

bash 复制代码
sudo adduser git

创建git仓库的存储目录、更改文件目录属主为代码仓库的管理者git,只让git用户对此目录有权限。

bash 复制代码
sudo mkdir /home/gitrepository
sudo chown git:git /home/gitrepository
sudo chmod 700 /home/gitrepository

默认状态下,gitosis会将git仓库放在 git用户的home下,所以我们做一个链接到/home /gitrepository

bash 复制代码
su git
ln -s /home/gitrepository /home/git/repositories
exit

第三步,创建证书登录:

方法1:

收集所有需要登录的用户的公钥,就是他们自己的id_rsa.pub文件,把所有公钥导入到/home/git/.ssh/authorized_keys文件里,一行一个。

bash 复制代码
su git
mkdir -p /home/git/.ssh/

方法2:Gitosis管理公钥

gitosis依赖于python工具库,先安装python工具库

bash 复制代码
sudo apt-get install python-setuptools

下载及安装

bash 复制代码
cd ~
git clone https://github.com/tv42/gitosis.git
cd gitosis
sudo python2.7 setup.py install

在服务端生成管理库:

bash 复制代码
sudo chmod -R 777 /home/git
sudo -H -u git gitosis-init < /tmp/id_rsa.pub
sudo chmod -R 755 /home/git

报错处理:IOError: [Errno 13] Permission denied: '/home/git/.ssh/authorized_keys.10768.tmp'

将/home/git及/home/git/.ssh权限都赋值为755,gitrepository也给个755(不能给777,不然要用绝对地址git@ip:/home/gitrepository/project,且不能通过gitosis管理)

执行上面命令后生成目录:

设置post-update脚本权限:

测试git服务器

新建测试工程

在/home/git/repositories建立新工程test

bash 复制代码
sudo mkdir test.git
cd test.git
sudo git init --bare
cd ..
sudo chown -R git:git test.git/

gitosis-admin克隆到本地

bash 复制代码
 git clone git@192.168.xxx.xxx:gitosis-admin

打开gitosis-admin/gitosis.conf, 添加test项目配置

上传gitosis-admin

测试拉下来test工程到本地

bash 复制代码
git clone git@192.168.xxx.xxx:test
相关推荐
lqqjuly6 分钟前
Lidar调试记录Ⅰ之Ubuntu22.04虚拟机安装ROS2(无坑版)
linux·ros2·lidar·ubuntu22.04
I · T · LUCKYBOOM32 分钟前
构建软RAID磁盘阵列
linux·运维·服务器
IT小白农民工34 分钟前
安装SAP Business one for HANA之前的准备
linux·经验分享·sap
小虾爬滑丫爬1 小时前
.net8发布Linux 版本程序,部署到Linux服务器上
linux·.net8·打包部署
阿巴~阿巴~1 小时前
UDP网络编程:从客户端封装到服务端绑定的深度实践
linux·网络·socket网络编程·sendto函数·ip绑定·udp网络编程
硬核子牙2 小时前
ext4文件系统与jbd2
linux
Lynnxiaowen2 小时前
今天我们开始学习ansible之playbook的简单运用
linux·运维·学习·云计算·ansible
誰能久伴不乏2 小时前
Linux 进程通信与同步机制:共享内存、内存映射、文件锁与信号量的深度解析
linux·服务器·c++
xulihang2 小时前
如何在Windows上使用SANE扫描文档
linux·前端·javascript
讨厌下雨的天空3 小时前
进程基本概念
linux