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

看这则新闻:

最近代码托管平台代码泄露火了一下,经理赶紧让我们未雨绸缪,把托管在开源中国的项目弄到本地来,哈哈,其实项目都捏在自己手里确实安全多了,但是毕竟建立本地仓库还是约束性太大,于是决定在自己的服务器里搭建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文件夹

mkdir  .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 (所有用户都有读、写、执行权限)

云服务器搭建git仓库相关推荐

  1. 云服务器搭建Git环境

    目录 一. Git服务器概述 二. 搭建Git服务器 2.1 服务器端安装git 2.2 服务器端创建git用户 2.3 服务器端创建git仓库 2.4 服务器端打开RSA认证 2.5 客户端创建SS ...

  2. 腾讯云搭建git仓库

    腾讯云搭建git仓库 Git介绍 环境 下载安装 git 安装依赖库和编译工具 下载 git 解压和编译 配置环境变量 创建 git 账号密码 初始化 git 仓库并配置用户权限 创建 git 仓库并 ...

  3. 在刚创建的云服务器如何git克隆自己的私人仓库

    在刚创建的云服务器如何git克隆自己的私人仓库 首先安装git(根据不通的服务器操作系统来进行不通的命令输入) 我例如我的是centos,则输入: yum -y install git 看到下图即为安 ...

  4. 买个云服务器搭建自己的ngrok做微信公众号开发

    文章目录 准备 安装go语言环境 检查环境安装 在服务器上搭建Ngrok服务 下载ngrok源码 生成证书 将新生成的证书替换 编译生成ngrokd(服务端) 编译生成ngrok(客户端) 将服务器中 ...

  5. 2022版使用云服务器搭建公网k8s容器集群

    总体流程一览 主要流程如下: 1.准备云主机,升级CentOS系统到7.9 2.所有节点上安装Docker和Kubeadm,拉取相关镜像 3.在Master节点初始化集群,包括kubectl和部署CN ...

  6. 阿里云服务器搭建Nginx+rtmp推流服务器

    title: 阿里云服务器搭建Nginx+rtmp推流服务器 categories:[Centos] tags:[音视频编程] date: 2021/11/16 一.前期准备 服务器操作系统:Cent ...

  7. 阿里云服务器搭建Golang运行环境

    阿里云服务器搭建Golang运行环境 1. 下载安装Golang 2. 使用9090端口编写网页 1. 下载安装Golang 下载Golang安装包: 解压之: tar -zxvf go1.14.2. ...

  8. 【Android 电量优化】电量优化 ( 获取电量分析报告 | 阿里云服务器搭建 Battery Historian | 上传并生成分析报告 )

    文章目录 一.Battery Historian 搭建环境 二.获取 Android 手机电量报告 1.重置电量状态 2.开启获取 WeakLock 信息 3.获取手机电量报告 三.阿里云服务器搭建 ...

  9. Linux学习之云服务器搭建嵌入式Linux开发环境

    Linux学习之云服务器搭建嵌入式Linux开发环境 第一步:购买云服务器 进入腾讯云官方网站腾讯云官方网站 选择云+校园云+校园 进入控制台 将云服务器系统设置为Ubuntu系统 使用Xshell6 ...

最新文章

  1. 【机器学习入门到精通系列】不废话直入正题之单变量线性回归(另附单变量非线性代码)
  2. SAP C4C url mashup跳转原理 - C4C UI到Mashup的参数传递是如何进行的
  3. Java 8 – Date API的新增功能
  4. Amoeba+Mysql实现读写分离+java连接amoeba
  5. (30)css3动画
  6. DNS分别在什么情况下使用UDP和TCP?
  7. python matplotlib阶段性总结——word转txt、绘图、文件操作
  8. 生命计算机在线,生命计算器
  9. 基于51单片机的模拟信号检测系统
  10. springboot获取apk包名、app名称、版本名称、版本号
  11. 【中间件技术】第四部分 Web Service规范(10) Web Service规范
  12. 不用PS,一键生成熊猫头表情包
  13. Linux系统文件属性
  14. 我的helloworld
  15. 1024 科学计数法 (20 分) 完全解析(C++详细思路)
  16. 入侵特斯拉——智能汽车安全性分析
  17. android到底要多少内存,手机内存究竟要多大才够用?
  18. 面向对象之:三大特性:继承(已讲),封装,多态
  19. if then 条件判断语句和 if then else
  20. 2020.9.9华为笔试记忆:KMP+记忆化搜索+字典树

热门文章

  1. 命令执行漏洞 java_白帽子挖洞—命令执行(Commnd Execution)篇
  2. RC4加密算法原理与C#实现
  3. python制作更换壁纸小程序
  4. 解释性语言和编译性语言的区别
  5. 信息安全,别为了芝麻丢了西瓜。
  6. 微信小程序版学生管理系统演示(一)
  7. matlab函数 randperm()的用法
  8. JS实现表格高亮显示
  9. 华为C语言面试题集 C语言面试题-华为C语言面试题 深圳华为面试
  10. 呼吸更顺畅的KN95口罩,配色好看安全好用