快速架设一个简单的基于 SSH 的 Git 服务

Git配置SSH公钥 而用户的 key 则是针对用户的,用户添加了 key 就对用户名下的仓库和用户参加了的仓库具有权限,一般而言,用户的key具有推送和拉取的权限,而仓库的 key 则只具有拉取权限。仓库的 sshkey 只针对仓库,且我们仅对仓库提供了部署公钥,即仓库下的公钥仅能拉取仓库,这通常用于生产服务器拉取仓库的代码。Gitee 提供了基于 SSH 协议的 Git 服务,在使用 SSH 协议访问仓库仓库之前,需要先配置好账户 SSH 公钥。和仓库"只读"权限的 SSH Key 相比,账户的 SSH Key 同时具备。 阅读详情

一直使用在 github 上托管的 git 服务,虽然 github 的代码托管,协作,wiki 功能,以及 bug tracking 功能都非常好用。但是随着项目不断增多,github 最便宜的每月 7 美元 5 个 private 项目的容量很快不够用了。想想反正自己有一台 Linode 的 CentOS 云服务器,于是诞生了自己架一套 git service 的念头,就不花钱升级 github 了。

根据 git 网站 Pro Git 书中的说明,选择 SSH 方式简单架设了一套。因为主要是自己使用,不存在提供给别人公共访问的要求,而且基本每台 Linux 服务器都可以 SSH, 所以选择了 SSH 方式。Pro Git 中对 git 可以采用的几种协议的优缺点以及适用场景都有详细介绍。下面是使用 SSH 方式的基本步骤:

有关 git 使用 SSH 的基本知识

要通过 SSH 克隆一个 Git repository,我们可以像下面这样指定 ssh:// URL :

$ git clone ssh://user@server:project.git

或者我们也可以不指定一个协议 — 如果没有显式指定的话 Git 假设是 SSH:

$ git clone user@server:project.git

我们也可以不指定一个用户,这样的话 Git 会假设是当前登录的用户(和使用 SSH 命令的情形类似)。

第一步,放一个裸的 Repository 到服务器上

假设 my_project 是我们在本地的一个 git Repository 项目目录,通过使用 --bare 参数生成只包含 git 信息的裸的项目拷贝

$ git clone --bare my_project my_project.git

第二步,通过 scp 命令把 git 拷贝存储到服务器

现在我们已经有了一个裸的 Repository 的拷贝,下一步就是把它放到服务器上。假设我们已经有了一个名为 git.example.com 的服务器,并且已经可以通过 SSH 进行访问。假设我们也在服务器的 /opt 目录下建了一个名为 git 目录专门用来存放 git 项目信息。我们就可以像下面这样通过拷贝一个裸的 Repository 到服务器上来设置一个新的 Repository:

$ scp -r my_project.git user@git.example.com:/opt/git

需要注意的是,如果我们给 SSH 设置了不同的访问端口(不是默认的 22),比如说是8080,那么我们需要用 -P 8080 参数来指定 SSH 使用的端口。

$ scp -r -P 8080 my_project.git user@git.example.com:/opt/git

第三步,使用服务器上的 git

这时候,其他也具有到同一台服务器 SSH 访问权限的用户就可以通过运行下面的命令来克隆我们的项目啦,要求至少对 /opt/git 目录具有读取权限:

$ git clone user@git.example.com:/opt/git/my_project.git

这里同样要注意 SSH 端口的问题,如果不是默认的 SSH 端口,要像下面这样运行命令(注意没有省略 ssh://,以及 8080 端口号放置的位置)

$ git clone ssh://user@git.example.com:8080/opt/git/my_project.git

剩下的就是和通常 git 的用法一样了,git pull git push 等

例如:
$ git pull ssh://user@git.example.com:8080/opt/git/my_project.git

希望通过 SSH 之外的其他方式来假设 git,或者像提供 git 的公共访问或是希望提供 Web 页面的,更多信息请参考 git 官方网站上的文章:Git on the server

原文地址:http://www.tfan.org/build-a-simple-ssh-git-service-in-five-minutes/

搭建企业私有Git服务 一、GIT服务器搭建方式 上一节课我们讲过GIT是一个分布式版本管理系统,既然是分布那么必定会涉及远程通信,那么GIT是采用什么协议进行远程通信的呢? git支持的四种通信协议: Local(本地协议) ssh http(Dumb、Smart) git 1、Local(本地协议) 基于本地文件系统或共享(NFS)文件系统进行访问, 优点:简单,直接使用了现有... 阅读详情

相关推荐

Windows11下快速搭建Git服务器并配置SSH免密登录

本文详细介绍了在Windows11系统下快速搭建Git服务器并配置SSH免密登录的完整流程。通过启用WSL2、安装Ubuntu子系统、创建Git用户和仓库目录,以及使用ssh-keygen生成密钥对,开发者可以轻松建立安全的私有Git服务环境,特别适合内网开发和团队协作场景。

weixin_26846533的博客 436

快速架设一个使用 SSH 的 Git 服务

原文地址:http://www.tfan.org/build-a-simple-ssh-git-service-in-five-minutes/  Git 是非常流行的分布式版本控制工具,很早以前就从 Subversion 转到 Git 了。现在日常开发,测试和应用部署也都是使用 Git,而且除了版本控制功能之外,也可以使用 Git 很方便的进行应用部署(或网站发布)等工作,所以 Git

gonedays的专栏 656

如何在自己的服务器上搭建远程git仓库

这里主要讲搭建在自己的服务器上,如果要使用GitHub,可以参考https://www.liaoxuefeng.com/wiki/896043488029600/896954117292416 写在前面的话,我不想吐槽,但是真的忍不住。按照网上的教程配置出来的git服务器,按部就班到时可以,自己已用就全是bug。我想说,这些教程只管演示不管教的吗?我不知道演示一遍有什么意义。 为什么要创建git用户?为什么要创建SSH key?为什么这些都不说清楚?我真的很无语,我本来按照通常的教程写好了,然后跑出问题了,

我的blog屋 1967

git项目初始上传服务器,快速架设一个使用 SSH 的 Git 服务

Git 是非常流行的分布式版本控制工具,很早以前就从 Subversion 转到 Git 了。现在每天用的 Xcode日常开发,测试和应用部署也都是使用 Git,而且除了版本控制功能之外,也可以使用 Git 很方便的进行应用部署(或网站发布)等工作,所以 Git 基本上是每天工作都离不开的一个工具了。之前一直在使用 Github 上付费 Git 托管服务,虽然 Github 的代码托管,协作,Wi...

weixin_28733777的博客 212

图形学基础|基于SDF的卡通阴影图

图形学基础|基于SDF的卡通阴影图 文章目录图形学基础|基于SDF的卡通阴影图一、前言二、SDF(Signed Distance Field)三、阴影图生成3.1 SDF生成3.2 插值参考博文 一、前言 回顾之前做的卡通渲染,角色面部阴影是靠一张阴影贴图实现的。 为了更好地控制角色的脸部阴影,通过计算脸部朝向与光照方向的夹角和一张单色的FaceMap来判断。 FaceMap的每个像素表示:该像素判断为阴影时候需要达到的夹角。 例如: 当方向光正对角色的时候,夹角为0°,对应的值为0,此时,FaceMap

【黑键】 1万+

OpenFoam实用技巧——starccm网格高效转换openfoam格式全解析

本文详细解析了如何利用OpenFOAM官方工具`ccm26toFoam`,将STAR-CCM+生成的高质量网格高效、稳定地转换为OpenFOAM格式。内容涵盖从STAR-CCM+正确导出网格、执行转换命令、解读转换日志,到转换后关键的边界条件修复与网格质量检查等全流程,旨在帮助用户规避常见错误,实现无缝工作流衔接。

weixin_28309571的博客 457

服务器上的 Git - 架设服务器

为什么80%的码农都做不了架构师?>>> ...

weixin_33809981的博客 117

双目立体匹配算法:SGBM

SGBM(Semi-Global Block Matching)是一种用于计算双目视觉中视差(disparity)的半全局匹配算法,在OpenCV中的实现为semi-global block matching(SGBM)。它是基于全局匹配算法和局部匹配算法的优缺点,提出了一种折中的方法,既能保证视差图的质量,又能降低计算复杂度。

weixin_45303602的博客 9404

如何快速建立一个最简单的 Git 服务器

公众号关注「奇妙的 Linux 世界」设为「星标」,每天带你玩转 Linux !程序员的代码仓库,总是需要托管一份在服务器,这样才保险,也方便使用。今天就来谈谈 Git 服务器。代码托管服务一般情况下,都不建议自己搭建 Git 服务器,而要使用现成的服务,也就是代码托管服务。它们都是免费的。GitHubGitlabBitbucketCodebergsourcehutGitee其中,除了最后一家 ...

easylife206的专栏 844

嵌入式学习笔记- 关于电容的纹波电流

纹波电流是导致电解电容发热、影响其寿命的关键交流电流成分。它不是一种特殊的电流,而是电路中必然存在的现象。要重视,不能忽视。必须保证电路中的纹波电流 < 电容的额定纹波电流。电容鼓包爆浆,要怀疑是否是纹波电流过大或电容ESR变大所致。希望这个解释能帮助您彻底理解这个概念!二 电容纹波电流与频率的关系在大多数情况下,频率越高,电容所能承受的额定纹波电流值越大。【个人理解:因为频率越低ESR越大,具体见第三节ESR与频率的关系】下面我为您详细解释为什么会这样,以及在实际应用中如何考虑。

qq_35771411的博客 2192

把 SAP 配置当成一张地图:用 IMG 把实施、变更与治理串成一条清晰的路

摘要 SAP IMG(Implementation Guide)是SAP实施的核心导航体系,它将客户需求转化为系统配置,提供结构化路径和文档化支持。IMG不是简单的菜单树,而是包含业务落地路径、标准化配置活动和文档化知识的实施语言。通过三种视图(Reference、Enterprise、Project)解决不同管理问题,其中Project IMG尤其重要,可管理项目范围、分工和进度。实际工作中应通过SPRO事务码访问IMG,将探索与执行分开管理。案例显示,跨国企业通过Project IMG可有效控制组织架构

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 229

Git服务器搭建简明教程

Ubantu 16下搭建git服务器详细教程。

redflyfan 2万+

【YOLO11改进 - C3k2融合】C3k2融合动态蛇形卷积(Dynamic Snake Convolution)用于管状结构分割任务

【YOLO11改进 - C3k2融合】C3k2融合动态蛇形卷积(Dynamic Snake Convolution)用于管状结构分割任务

专注于图像领域,主要研究内容包括计算机视觉和深度学习,特别是在图像分类、目标检测和图像生成等方面有深入的研究和实践经验。 517

服务器上的 Git - 生成 SSH 公钥

目录 概述 一、生成 SSH 公钥 1. Linux 系统 2. Windows 系统 二、发送公钥 三、 复制公钥 四、 验证 SSH 参考文章 概述 许多 Git 服务器都使用 SSH 公钥进行认证。 为了向 Git 服务器提供 SSH 公钥,如果某系统用户尚未拥有密钥,必须事先为其生成一份。 这个过程在所有操作系统上都是相似的。 一、生成 SSH 公钥 首先,你需要确认自己是否已经拥有密钥。 1. Linux 系统 默认情况下,用户的 SSH 密钥存储在其 ~/.ssh

帝上无天的博客 3456

使用安卓的IMU数据进行 行人航位推算(PDR)推算步长 附python 代码

加速度计数据、陀螺仪数据、重力传感器数据、姿态仰角数据。数据分析与定位轨迹生成主要使用Python离线完成。示意图。

三维点云技术探索 1914

第9集:AI 驱动的智能日志分析!用 RAG 实现秒级日志检索与异常检测

文章摘要:AI驱动的智能日志分析系统 本文介绍了一个基于RAG(检索增强生成)技术的智能日志分析解决方案,旨在解决传统日志系统中的三大痛点:机械的关键词搜索、缺乏语义理解、告警与日志割裂。系统通过以下步骤实现: 环境准备:安装必要的Python依赖库,包括日志处理、Elasticsearch/Loki连接和时序异常检测工具。 核心设计:构建日志处理流水线,分为日志采集、向量化存储和AI检索分析三个阶段,创建专门的日志分析Agent。 技术实现:使用ChromaDB存储日志向量,通过HuggingFace E

qq_2937655951的博客 79

ssh git服务器_如何:通过SSH的Git服务器

ssh git服务器Git and SSH are both powerful tools, and git/ssh work well together. We introduce how to set up git server via ssh in this post. Git server through SSH is easy and fast to set up, although e...

cuma2369的博客 687

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

简单易用多git服务器ssh密钥配置管理

快速理解如何配置管理多个git服务器的ssh,当我们有多个git帐号时会涉及如何管理不同的remote使用不同的git账户登陆推送当前repo的origin remote是github,我们在推送时直接自动调用github的ssh密钥当前repo的gitee remote是gitee,我们在推送时自动调用gitee的ssh密钥如此不管多少个git服务器被使用,那么都能很灵活管理ssh-keySSH-key是SSH协议用于身份验证的一种方式,用于加密和解密数据。它由一个公钥和一个私钥组成。

机器人梦想家 Bing Lee 3537

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

如何在linux服务器上搭建Git服务

本文主要讲解如何在自己的服务器上搭建Git服务。 在开始架设 Git 服务器前,需要把现有仓库导出为裸仓库——即一个不包含当前工作目录的仓库。 这通常是很简单的。 为了通过克隆你的仓库来创建一个新的裸仓库,你需要在克隆命令后加上 选项。 按照惯例,裸仓库的目录名以 .git 结尾,就像这样: 现在,你的 目录中应该有 Git 目录的副本了。整体上效果大致相当于: 虽然在配置文件中有若干不同,但是对于你的目的来说,这两种方式都是一样的。 它只取出 Git

sg_knight的专栏 2096

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

【Git】本地git服务器搭建

到目前为止已经有办法使用 Git 来完成日常工作。然而,为了使用 Git 协作功能,你还需要有远程的 Git 仓库。尽管在技术上可以从个人仓库进行推送(push)和拉取(pull)来修改内容,但不鼓励使用这种方法,因为一不留心就很容易弄混其他人的进度。此外,你希望你的合作者们即使在你的电脑未联机时亦能存取仓库 — 拥有一个更可靠的公用仓库十分有用。因此,与他人合作的最佳方法即是建立一个你与合作者们都有权利访问,且可从那里推送和拉取资料的共用仓库。架设一台 Git 服务器并不难。

C/C++软件工程师、嵌入式软件工程师、物联网研发工程师、C/C++讲师、物联网讲师、嵌入式讲师、鸿蒙讲师---欢迎大家一起交流(私信添加博主微信) 6049

git服务器 四种协议,git的四种协议

一.任务git 协议 主要四种* 本地协议* SSH 协议 同时支持读写操作的网络协议* Git 协议 网络协议 只读 不能写操作* HTTP 协议 :(不在服务器端运行Git) 网络协议 只读 不能写操作本地协议最基本的就是本地协议 常见于团队每一个成员都对一个共享的文件系统拥有访问权,或者比较少见的多人共用同一台电脑的情况如果你使用一个共享的文件系统,就可以在一个本地文件系统中克隆仓库...

weixin_42526484的博客 1866

搭建私有git服务

文章目录1. GIT服务器搭建方式1.1Local(本地协议)演示本地协议使用方式:1.2 ssh 协议演示基于 ssh 协议二、基于gogs快速搭建企业私有GIT服务 1. GIT服务器搭建方式 git支持的四种通信协议: Local(本地协议) ssh http(Dumb、Smart) git 1.1Local(本地协议) 基于本地文件系统或共享(NFS)文件系统进行访问, 优点:简...

Dcwjh的博客 804

Git之深入解析如何运行自己的Git仓库托管服务器

一、协议 了解了 Git 的基础使用流程和 Git 的分支管理之后,我们应该已经有办法使用 Git 来完成日常的工作。然而,为了使用 Git 协作功能,还需要有远程的 Git 仓库。尽管在技术上可以从个人仓库进行推送(push)和拉取(pull)来修改内容,但不鼓励使用这种方法,因为一不留心就很容易弄混其他人的进度。如果还不清楚 Git 的基础使用流程和分支的管理,请参考博客: Git之深入解析Git的安装流程与初次运行Git前的环境配置; Git之深入解析本地仓库的基本操作·仓库的获取更新和

╰つ栺尖篴夢ゞ 4085

windows系统git下载和ssh配置

在 Windows 系统中,Git 是最常用的版本控制工具之一,而 SSH(Secure Shell)密钥则提供了一种安全、高效、无密码交互的远程仓库访问方式。安装 Git下载并安装适用于 Windows 的 Git,确保命令行环境可用;配置 Git 用户信息设定全局user.name与user.email,确保提交记录准确、有迹可循;生成 SSH 密钥对在本地使用命令生成一对 SSH 密钥(包含私钥id_rsa与公钥id_rsa.pub),用于身份验证;注册公钥至远程平台。

qq_61875563的博客 2029

快速搭建私有 Git 服务器指南

Linux服务器上通过SSH搭建Git服务器的简要步骤:1)创建专用git用户;2)配置SSH密钥认证,将开发者公钥加入authorized_keys;3)用git init --bare创建裸仓库;4)客户端通过git clone/push操作远程仓库。关键点包括使用--bare参数、SELinux权限修正(restorecon)及安全加固(禁用shell登录和密码认证)。该方法利用现有SSH服务实现轻量级Git服务器搭建,适合小型团队协作开发。

Unstoppable22的博客 686
上一篇: 如何在 Linode 的 CentOS 6 上部署 WordPress 应用?
下一篇: HTML5 离线功能详解 - 构建 Offline Web Application
itkbase
博客等级 码龄19年 113粉丝 4646原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值