手把手教你创建的私人git仓库(Linux CentOS7 )

2023-11-09

手把手教你创建的私人git仓库(Linux CentOS7 )

安装git

yes | yum install git-core 

配置用户名和邮箱

此处以
lrq
lrq|@email.com

为例

git config --global user.name "lrq"
git config --global user.email "lrq@email.com"

安装ssh服务

git数据交互是基于ssh的,先看一下有没有装sshd服务

ps -ef|grep "sshd"  

出现以下几个说明已经装好了
在这里插入图片描述
否则(或者你想更新的话),使用下面的命令安装openssh。

yes | yum install openssh-clients openssh-server
systemctl start sshd
systemctl enable sshd

服务器端打开RSA认证

编辑/etc/ssh/sshd_config

vi /etc/ssh/sshd_config

把下面三个注释打开(它们并没有放在一起, 一个个找), 如果没有则在最后添加

RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys

保存,并重启服务,

systemctl restart sshd

由 AuthorizedKeysFile 得知公钥的存放路径是 .ssh/authorized_keys,实际上是 $Home/.ssh/authorized_keys,由于管理 Git 服务的用户是 git,所以实际存放公钥的路径是 /home/git/.ssh/authorized_keys。因为我们创建了git用户管理代码,把.ssh的权限设置为git。用户组也是git。

创建git用户和密码专门对代码进行管理

useradd -m git
passwd [你的密码]
passwd -l git

建立一个仓库目录并修改权限

建立一个共享的仓库,只能接受push/pull ,不能本地commit
进入你想要的仓库地址
此处示例为: /data/gitRepos/demo

cd /
mkdir data
mkdir data/gitRepos

cd data
chown -R git:git gitRepos/
chmod 700 -R gitRepos/

切换到git用户并创建仓库

su git
mkdir data/gitRepos/demo
cd gitRepos/demo
git --bare init

服务器克隆项目(把服务器也当做一个客户端)

git clone git@127.0.0.1:/data/gitRepos/demo

由于并没有把服务器自己的ssh公钥追加到/home/git/.ssh/authorized_keys 所以还是需要输入密码的

在这里插入图片描述

客户端

客户端创建公钥和私钥

$ ssh-keygen -t rsa -C "你的邮箱地址"

在这里插入图片描述

服务器

把刚刚生成的客户端公钥上传到服务器并追加到authorized_keys末尾

客户端此处上传文件到服务器以/upload为例

su git
cd ~
mkdir .ssh
chmod 700 .ssh
cat /upload/id_rsa.pub >> /home/git/.ssh/authorized_keys
chmod 600  /home/git/.ssh/authorized_keys

客户端

客户端克隆项目

克隆仓库

git clone git@192.168.216.3:/data/gitRepos/demo

在这里插入图片描述

试一下提交文件

在这里插入图片描述

服务器

这是附加题 (如果不知道这是什么 建议跳过)

禁止git用户通过密码登录到服务器

su root
passwd  -l  git

尝试拉取发现密码无论怎么输入都是错误的
在这里插入图片描述
把root用户的公钥加入到git用户的authorized_keys

cd ~
ssh-keygen -t rsa -C "lrq@email.com"
cat .ssh/id_rsa.pub >> /home/git/.ssh/authorized_keys

尝试拉取, 成功
在这里插入图片描述

这样就必须用秘钥登录了
安全性更高

至此git私人仓库已经搭建完成 学会了给我点个赞, 收个藏

彩蛋

如果我当前的git仓库是搭建在测试服务器上的, 现在想要在任意客户端推送test分支到远程仓库 则自动在服务器上自动拉取到最新代码怎么实现呢?

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

手把手教你创建的私人git仓库(Linux CentOS7 ) 的相关文章

随机推荐

  • APP保活

    APP保活 前言 app保活 在Android中是一种流氓行为 一方面无端浪费用户手机电量 另一方面给用户一种很困惑的感觉 影响用户体验还有可能导致整个Android系统流畅性变差 所以Google官方一种不推荐该功能 也一直在阻止这方面功
  • 最细致的LayUI【前端框架】从入门到实战-快速搭建后台管理系统

    最细致的LayUI 前端框架 从入门到实战 快速搭建后台管理系统 LayUI学习思维导图 和 Bootstrap 有些相似 但该框架有个极大的好处就是定义了很多前后端交互的样式接口 如分页表格 只需在前端配置好接口 后端则按照定义好的接口规
  • 【干货】Android系统定制基础篇:第三部分(Android静默安装、Android支持usb打印机)

    1 Android静默安装 一些产品要求APP在升级时能够实现静默安装 而无需弹出安装界面让用户确认 这里提出两种实现方案 方案一 APP调用 pm 命令实现静默安装 此方案无须修改Android源码 但需要root权限 方案二 修改And
  • ESP32之 ESP-IDF + Clion 开发环境搭建(一)—— Windows版

    本文章 来自原创专栏 ESP32教学专栏 基于ESP IDF 讲解如何使用 ESP IDF 构建 ESP32 程序 发布文章并会持续为已发布文章添加新内容 每篇文章都经过了精打细磨 通过下方对话框进入专栏目录页 CSDN 请求进入目录 O
  • 基于matlab的图解粒度参数计算,基于MATLAB的图解粒度参数计算

    陶瓷材料 第26卷 第3期 2006年8月 热 带 地 理 TROPICALGEOGRAPHY Vol126 No13 Aug 2006 基于MATLAB的图解粒度参数计算 王 为 吴 正 华南师范大学地理系 广州510631 摘 要 粒度
  • Android res文件夹下资源定义及使用

    1 颜色 RGB ARGB RRGGBB AARRGGBB 颜色资源应该位于
  • Android JNI实现锅炉压力显示系统详解

    前些天发现了一个蛮有意思的人工智能学习网站 8个字形容一下 通俗易懂 风趣幽默 感觉非常有意思 忍不住分享一下给大家 点击跳转到教程 第一步创建GuoLu c文件 Created by DELL on 2023 8 13 include
  • TCP协议通讯流程——三次握手四次挥手

    TCP协议通讯流程 如图 1 服务器的初始化 服务器端 调用socket 创建文件描述符 调用bind 将当前文件描述符与IP地址跟端口号绑定在一起 如果该端口号已经被其它进程占用了 就会bind失败 调用listen 声明当前文件描述符为
  • 【vue】Echarts3D地图下钻

    需求分析 地图下钻是一个非常常见的功能需求 本篇文章会细致讲解如何在Vue3中使用Eharts gl渲染出3D地图 并且实现地图下钻和返回上级地图的完整功能 github项目demo地址 点击这里 注意此项目为vue3版本 vue2版本在仓
  • Linux如何启动网卡?

    在新安装的Linux系统 我们配置的网卡可能是没有激活的 此时ping不通外网 下载包的时候也会报错 下面我们看看如何启动网卡 1 首先获取root权限 输入su 再输入密码 密码是不显示的 注意小键盘有没有锁住 获取root权限后 输入提
  • Python Turtle 画图

    https www jb51 net article 130181 htm Turtle库是Python语言中一个很流行的绘制图像的函数库 想象一个小乌龟 在一个横轴为x 纵轴为y的坐标系原点 0 0 位置开始 它根据一组函数指令的控制 在
  • PNG编解码算法详解

    1 PNG介绍 PNG是便携式网络图型 Portable Network Graphics 的缩写 由于PNG带有透明通道 无损压缩 可提升设计元素的呈现效果 因此设计上对PNG情有独钟 广泛的运用在设计 游戏 网页 app开发里 实际使用
  • MFC 最详细入门教程

    From https blog csdn net wang18323834864 article details 78621633 Visual Studio 2019 https visualstudio microsoft com zh
  • AttributeError: module 'urllib' has no attribute 'urlopen'

    使用py3的urllib urlopen方法时报错 PS C Users jiangcheng Documents Python Scripts gt python Python 3 6 5 Anaconda Inc default Mar
  • IDEA常用插件之代码扫描SonarLint

    文章目录 SonarLint 查找隐藏的bug 下载安装插件 扫描代码 查看结果 SonarLint 查找隐藏的bug 下载安装插件 扫描代码 项目右键 gt Analyze gt Analyze with SonarLint 查看结果 扫
  • Colmap学习三:后端Initialization部分(基础矩阵F、本质矩阵E和单应矩阵H)

    算矩阵的基础知识 解析本质 基础 单应矩阵的自由度 1 寻找初始像对 1 1手动选择ID 1 2自动筛选 prior focal length存在情况下 开始筛选 匹配点数由小到大排序 第二张候选影像的匹配数目大于init min num
  • 什么是JSP

    JSP 与 PHP ASP ASP NET 类似 是一种运行在web端的语言 JSP 全称Java Server Pages 是由 Sun Microsystems 公司倡导和许多公司参与共同创建的一种使软件开发者可以响应客户端请求 而动态
  • 数据库 索引

    多数数据库 使用 B 树 Balance Tree 的结构来保存索引 B 树 最上层节点 根节点 最下层节点 叶子节点 两者之间的节点 中间节点 B 树 显著特征 从根节点 到各个叶子节点的距离都是相等的 如此 检索任何值时 都经过相同数目
  • 详解map、set、multimap、multiset的使用

    作者 阿润菜菜 专栏 C 目录 前言 set multiset的使用 1 set 2 multiset 3 什么时候应该使用multiset而不是set map multimap的使用 1 map 2 multimap 3 什么时候应该使用
  • 手把手教你创建的私人git仓库(Linux CentOS7 )

    手把手教你创建的私人git仓库 Linux CentOS7 安装git yes yum install git core 配置用户名和邮箱 此处以 lrq lrq email com 为例 git config global user na