快速架设一个简单的基于 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

手把手教你用AFL挖掘C程序漏洞:从安装到实战(附常见错误排查)

本文详细介绍了如何使用American Fuzzy Lop (AFL)对C/C++程序进行模糊测试,从环境准备、目标程序插桩编译、初始语料库构建到实战运行与结果分析。重点讲解了AFL的安装、常见错误排查(如核心转储配置、执行速度优化)以及提升测试效率的高级策略(如持久模式、并行化),帮助开发者和安全工程师高效挖掘程序漏洞。

weixin_29014237的博客 407

Windows 11最新WDK安装避坑指南:从Visual Studio配置到KMDF驱动开发

本文提供了在Windows 11系统上进行KMDF驱动开发的完整环境搭建与实战指南。针对最新WDK与Visual Studio的配置变化,详细解析了从独立安装WDK/SDK、创建首个KMDF驱动项目,到编译排错、部署调试的全流程,帮助开发者高效避坑,顺利开启Windows内核开发。

weixin_29302047的博客 526

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

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

weixin_33809981的博客 117

IBM V3700更换控制器2(503错误)

正常的node1 ,机器代码版本:7.5.0.3, 机器代码构建:115.51.1509171734000。耐心等待后,刷新,看到node2,状态变成 节点状态:服务,错误:656,版本和node1一样了。新换的node2 ,机器代码版本:7.2.0.5, 机器代码构建:87.8.1404221000。耐心等待,刷新,node2,状态看到了,节点状态:活动,错误 724 1 1 0。拔出故障的控制,把内存和HBA卡,电池换到新的控制器。新的控制还是报错无法使用,节点状态:服务 错误:503。

klyshao的博客 4447

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

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

easylife206的专栏 844

青龙面板实战:用快手极速版脚本日赚XX元的核心参数解析

本文深入解析了青龙面板运行快手极速版脚本的核心参数配置,旨在帮助进阶用户提升收益稳定性。重点剖析了设备标识符(did)的获取原理、多账号Cookie的精准拼接规则,以及如何通过科学设置定时任务频率来量化并优化收益,实现细水长流的稳定收益。

weixin_29310605的博客 1074

微信小程序 - 下单账号和支付账号不一致,请核实后再支付(微信小程序或微信H5页面/微信公众号网页支付时报错:“下单账号和支付账号不一致,请核实后再支付”,买家微信支付时提示错误)详细排查和解决方案!

微信支付出现 “下单账号与支付账号不一致,请核实后再支付”微信小程序下单账号与支付账号不一致不让支付,微信公众号网页 微信H5页面JS-SDK支付时出现错误:下单账号和支付账号不一致,请核实后再支付,openId导致的微信中“下单账号和支付账号不一致”原因及解决办法,调用统一下单所传openId与实际支付用户的openId不一致,微信支付jssdk报错,检查了没有不一致依然报错怎么办,微信支付下单账号和支付账号不一致,请核实后再支付,微信支付功能用JSAPI支付,H5页面负责下单并支付jsapi,微信调起支

🏆 前端领域优质创作者 5330

Git服务器搭建简明教程

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

redflyfan 2万+

大模型工作流Dify面试题及参考答案

设计一个基于 Dify 的智能摘要与重点提取 Agent,需结合Prompt 工程、模型能力配置和工作流优化,确保对长文本的高效解析和关键信息提炼。1. 明确任务需求与输入输出输入:长文本内容(如文章、报告、会议记录)或文本 URL输出摘要:简洁概括原文核心内容,控制在原文长度的 10%-20%重点列表:分点列出关键数据、结论、行动项等可选:关键词提取、情感倾向分析示例场景输入:一篇 5000 字的行业报告。

大模型大数据攻城狮的专栏 2510

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

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

帝上无天的博客 3456

YOLO26科研优化:多损失函数(EIoU、SIoU等)融合,让边界框回归精度再上台阶

将原有损失函数替换为我们编写的MultiLoss。例如,在bbox_loss。

LXY_LOVE36的博客 171

1、掌握 Microsoft Dynamics 365 Business Central 开发全解析

本文全面解析了Microsoft Dynamics 365 Business Central的开发全流程,涵盖开发环境搭建、AL语言扩展开发、定制解决方案实现、高级开发技术、文件与报表处理、打印功能、调试与性能优化、API使用、Azure和Power Platform集成、DevOps实践以及生成式AI应用。同时探讨了开发工具技巧、常见问题解决、开发流程优化、团队协作要点及未来技术趋势,帮助开发者系统掌握Business Central开发核心技能,提升企业级应用开发效率与质量。

food6的博客 110

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

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

简单易用多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

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

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

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

sg_knight的专栏 2096

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

【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、付费专栏及课程。

余额充值