关于我们

质量为本、客户为根、勇于拼搏、务实创新

< 返回新闻公共列表

如何自己用云服务器搭建git仓库

发布时间:2021-06-04 17:18:13

前言:代码平台托管安全吗?

看这则新闻:



最近代码托管平台代码泄露火了一下,经理赶紧让我们未雨绸缪,把托管在开源中国的项目弄到本地来,哈哈,其实项目都捏在自己手里确实安全多了,但是毕竟建立本地仓库还是约束性太大,于是决定在自己的服务器里搭建git仓库(多少心里安全点哈)狗头保命


总的来说就是如何项目不开源?那就是搭建自己的git服务器

好了开整:

一、安装git

【我们的云服务器是CentOS7】供参考。

1.服务器安装git

sudo apt-get install git

(适合Debian系列linux系统,例如:Ubuntu,安装deb包的命令是“dpkg -参数” )

yum install  git

(适合RedHat系列linux系统,例如:Centos ,安装rpm包的命令是“rpm -参数” )

二、创建git用户

1.创建git用户:(用来运行git服务)

adduser git

2.设置密码:(尽量简短而不失复杂))

passwd git

3.切换到git用户 

su 命令用于变更为其他使用者的身份,除 root 外,需要键入该使用者的密码。

su git

三、初始化公库

1.确定仓库位置

这里选择了/home/git/ 创建名为warehouse的仓库 运行:

sudo git init --bare warehouse.git

此时warehouse.git是一个裸区,不工作,作纯粹的代码共享,用户也不鞥更改仓库的工作区

2.配置公钥

2.1生成公钥

SSH 公钥默认储存在账户的主目录下的 ~/.ssh 目录,查看一下:

cd  ~/.ssh

如果没有xxx.ras或者xxx.pub文件,生成一下:

ssh-keygen -t rsa

这里生成的.pub文件内容就是公钥。

选择一下密钥存储位置,以及查看密钥的密码(可以不设置),按enter结束

查看密钥命令:

$cat ~/.ssh/id_rsa.pub

2.2配置密钥

切换到git用户:

su git

打开git位置:

cd /home/git 
ls -a

首先确认是否有ssh密钥:若有.ssh文件夹,进入查看是否有authorized_keys文件,如果都没有 

创建.ssh文件夹

创建authorized_keys文件:

touch authorized_keys

编辑authorized_keys文件,将生成的公钥粘贴到文件内
项目肯定不止一个开发者,把所有的git账号的密钥诸葛追加到authorized_keys尾部即可。


四、禁用shell登录

这一步是防止使用git用户使用普通的bash

vim /etc/passwd

最后一行看到类似的:

更改为:

当试图使用git用户登录的是时候,报错


五、远程仓库权限问题

进入仓库目录执行:

chown  -R  git:git  warehouse.git

(warehouse是自己起的仓库名)

至此,服务器git仓库就已经搭建完毕了

接下来进行项目迁移

六、数据仓库迁移

以上warehouse.git是我自建的空库

因为原来已经有在使用的仓库,所以要把项目迁移到新仓库

1.把本地仓库的项目变为纯仓库:

示例(我的项目名叫mySpider):

git  clone --bare  mySpider mySpider.git

2.将纯仓库放到git服务器上:


scp -r mySpider.git username@139.196.152.104:/home/git/


3.j继续进入本地仓库的项目内,查看当前项目的远程仓库:

示例(我的项目名叫mySpider):

cd mySpider
git remote - v

4.移除远程仓库:

git  remote  rm  origin

5.添加远程仓库

git  remote  add  origin  git@139.196.152.104:/home/git/mySpider.git

6.设置本地分支关联远程分支:

git push --set-upstream origin master

七、结尾

仓库搭建完成,数据也迁移完成,最后克隆仓库项目:

git clone username@仓库地址:/项目.git

克隆项目之后修改然后提交:git push 出现bug:

remote: error: insufficient permission for adding an object to repository database ./objects remote: 远程:错误:权限不足,无法将对象添加到存储库数据库中。/对象远程:

解决:
1、修改仓库目录所属用户为 root,用户组为 root

chown -R 创建仓库时创建的用户名:所属组(云服务器用户名) /home/git

2、修改仓库目录为可写权限

chmod -R 777 /tmp (所有用户都有读、写、执行权限)






/template/Home/Zkeys/PC/Static