部署Gitea服务的那些坑

目标:在win10系统上部署Gitea服务,以ssh协议的方式访问。

首先要在win10系统上安装ssh服务,这里安装OpenSSH即可,PowerShell脚本如下(记住管理员运行):

# 打开 PowerShell 以管理员身份运行
# 添加 WindowsCapability - 在线安装 OpenSSH 服务器
Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0# 启动 sshd 服务
Start-Service sshd# 将 sshd 服务设置为开机启动
Set-Service -Name sshd -StartupType 'Automatic'# 测试连接,如果想要测试OpenSSH服务是否正常启动,使用下面命令进行测试连接
# ssh username@ip# 生成 SSH 密钥对
# ssh-keygen -t rsa

官网下载并安装Git

第一个坑:

OpenSSH所使用的默认shell为cmd,这会导致有些git命令面临如下问题:

fatal: protocol error: bad line length character: Micr

fatal: ''**/**/**.git'' does not appear to be a git repository(注,路径外并非双引号,而是两层单引号这是通过cmd作为shell执行git命令的问题,导致路径无法识别)

解决方案,修改OpenSSH的默认shell,PowerShell脚本如下:

$selected = Read-Host "设置为[1:cmd][2:PowerShell][3:GitBash]"
#设置为cmd
$shellPath = "C:\\Windows\\system32\\cmd.exe"
if($selected -eq "2")
{$shellPath = "C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe"
}
if($selected -eq "3")
{$shellPath = "C:\\Program Files\\Git\\bin\\bash.exe"
}New-ItemProperty -Path "HKLM:\\SOFTWARE\\OpenSSH" -Name DefaultShell -Value $shellPath -PropertyType String -Force
Read-Host "回车退出"

第二个坑:

路径问题,在使用Gitea创建完仓库之后,其生成出来的ssh路径并非绝对路径,而是直接指向了Gitea安装路径下的gitea-repositories文件夹下的路径,如下格式:

userName@host:user/RepoName.git

这就导致了一个问题,在用git命令clone或push向该sshUrl时,会找不到仓库,因为OpenSSH的默认寻址根路径是用户文件夹,也就是[~],想要从这个根路径找到仓库,必须使用绝对路径的方式。

解决方案,将Gitea下的指定仓库的绝对路径替换到上面的sshUrl中,变成:userName@host:D:/**/**/RepoName.git

第三个坑:

密钥验证问题,如果你在执行git命令时出现类似以下的提示,那么说明你可能面临安全验证方面的问题:

$ git push -u origin main
Administrator@192.168.1.195's password:
Enumerating objects: 3, done.
Counting objects: 100% (3/3), done.
Writing objects: 100% (3/3), 199 bytes | 199.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
remote:
remote: Gitea: Rejecting changes as Gitea environment not set.
remote: If you are pushing over SSH you must push with a key managed by
remote: Gitea or set your environment appropriately.
To 192.168.1.195:D:/**/**.git! [remote rejected] main -> main (pre-receive hook declined)
error: failed to push some refs to '192.168.1.195:D:/**/**.git'

实际上,我本地客户端已经生成了SSH的密钥对,也把公钥添加到Gitea中了,并且也配置了OpenSSH客户端的配置文件,设置好了访问Gitea时使用指定的私钥:

Host 192.168.1.195HostName 192.168.1.195Port 22User AdministratorIdentityFile ~/.ssh/id_rsa

但就是死活不好使,没办法,最后在国外网站的角落找到了解决方案:

修改Gitea的配置文件,在Gitea安装路径的这里:Gitea\custom\conf\app.ini

在配置文件的[security]节点下增加如下内容:

ONLY_ALLOW_PUSH_IF_GITEA_ENVIRONMENT_SET=false

注:第二、三个问题找到了原因,在创建Gitea管理员时,我不应该使用当前的Admin账号(实际上在第一次配置Gitea时,[以用户名运行]这一项好像是无法修改,只能是默认当前的登录账号,不过可以在配置文件中手动修改),所以我在windows系统中创建了另外一个git账号,然后修改Gitea\custom\conf\app.ini配置文件中的如下内容为创建的git用户:

RUN_USER = git-user

然后用admin账号生成密钥对,将公钥放到git-user的.ssh文件夹中,并且在Gitea管理面板将公钥加入。

这样的话,使用Gitea面板上为你生成的sshUrl就没有问题了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/613286.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

为什么会有js?

JavaScript(简称为JS)是一种脚本语言,主要用于为网页添加交互性和动态效果。JS的出现主要有以下几个原因: 网页交互性的需求:早期的静态网页只能展示信息,无法与用户进行交互。随着互联网的发展&#xff0c…

上海晋名室外暂存柜助力石墨烯材料行业气瓶储存安全

近日上海晋名又有一台室外气瓶暂存柜项目通过验收,此次项目主要用于石墨烯材料行业气瓶的室外暂存。 用户单位创立于2017年,是一家从事石墨烯等新材料技术的科技型高新技术企业。 上海晋名作为一家专注工业安全防护领域,危险化学品安全储存…

JavaScript-内置对象-笔记

1.Math对象 Math对象: 用于进行数字处理 自带的对象 不是构造函数---不需要new 属性: Math.PI ----- 圆周率 方法: Math.floor(数字) ----- 向下取整 (只要整数位) Math.ceil(数字) ---- 向上取整(不管小数…

web安全之XSS攻击原理及防范

XSS攻击原理 XSS(Cross-Site Scripting,跨站脚本攻击)是一种常见的网络攻击方式。攻击者通过在受害者的浏览器中注入恶意脚本,来实现对受害者的会话劫持、敏感信息窃取等非法目的。但是在实际的项目开发中,除了少数企…

RocketMQ Dashboard可视化工具

RocketMQ Dashboard 将 RocketMQ的相关指标展示在web页面 ,支持以可视化工具代替 Topic 配置、Broker 管理等命令行操作。 官方文档地址:RocketMQ Dashboard | RocketMQ 目录 1.下载安装 1.1 系统要求: 1.2 源码安装 1.3 访问页面 2.功…

如何搭建开源知识库软件AFFiNE并实现公网环境远程协作【内网穿透】

目录 前言 1. 使用Docker安装AFFINE 2. 安装cpolar内网穿透工具 3. 配置AFFINE公网访问地址 4. 实现公网远程访问AFFINE 结语 作者简介: 懒大王敲代码,计算机专业应届生 今天给大家聊聊如何搭建开源知识库软件AFFiNE并实现公网环境远程协作【内网穿…

借势API电商数据采集汇总分析

电商数据采集的网页抓取数据、淘宝、天猫、京东等平台的电商数据抓取,网页爬虫、采集网站数据、网页数据采集软件、python爬虫、HTM网页提取、APP数据抓包、APP数据采集、一站式网站采集技术、BI数据的数据分析、数据标注等成为大数据发展中的热门技术关键词。那么电…

使用python读取yaml文件数据

使用python读取yaml文件: yaml文件数据:data.yaml login_data:url: http://www.baidu.comcase1:user1: password1: 12345errorText: 请输入用户名case2:user2: adminpassword2: errorText: 请输入密码case3:user3: adminpassword3: 123456errorText: 登…

ABAP CDS 笔记

文章目录 1.什么是abap cdsadap cds的优点 2.常用cds语法常用函数一 数值函数1.绝对值2. 最小整数不小于arg的值3.两个参数相除4.两个数相除切保留小数位5.最小整数不大于arg的值6.取除数的余数 二 字符串函数1.拼接字符2.替换字符3.截取字符串 三 常用的分支语句1.CASE 表达式…

19. 从零用Rust编写正反向代理, 配置数据的热更新原理及实现

wmproxy wmproxy是由Rust编写,已实现http/https代理,socks5代理, 反向代理,静态文件服务器,内网穿透,配置热更新等, 后续将实现websocket代理等,同时会将实现过程分享出来&#xff…

探索 Java 8 中的 Stream 流:构建流的多种方式

目录 前言 什么是 Stream 流? 创建 Stream 流 1. 从集合创建 Stream 2. 从数组创建 Stream 3. 使用 Stream.of 创建 Stream 4. 使用 Stream.generate 创建 Stream 5. 使用 Stream.iterate 创建 Stream Stream 流的操作 1. 过滤数据 2. 映射数据 …

01 ZigBee开发环境IAR搭建

链接:https://pan.baidu.com/s/18l8z9qajPBj2X5WzgjT0TA?pwd41qc 提取码:41qc 注意:安装包和注册机都要右击用管理员权限打开,安装过程中关闭杀毒软件(否则后续程序不行) 安装IAR-8051 以管理员身份运行E…

鸿蒙开发已解决-arkts编译报错-arkts-limited-stdlib错误

文章目录 项目场景:问题描述原因分析:解决方案:适配指导案例此Bug解决方案总结项目场景: arkts编译报错-arkts-limited-stdlib错误。 我用Deveco studio4.0 beta2开发应用,报arkts-limited-stdlib错误 报错内容为: ERROR: ArKTS:ERROR File: D:/prRevivw/3792lapplica…

行列式的计算

1、基本性质: 1)行列式转置相等 2)任意两行(列)成比例,行列式为0 3)对换任意某两行(列),行列式变号 4)某一行(列)乘某…

Ubuntu下VsCode+CMake 交叉编译

参考连接: Ubuntu下VsCodeCMake 交叉编译 VSCode与CMake搭配使用之基本配置 VSCode与CMake搭配使用之交叉编译 step1: CtrlShiftp打开VSCode的指令面板,然后输入cmake:q ; 在窗口搜索:“ >CMake:Edit user-loacl CMake kits ”会打开一个…

SpringBoot集成阿里云短信实现发送短信验证码

SpringBoot集成阿里云短信实现发送短信验证码 一、准备工作1、注册账号2、申请资质3、申请签名4、创建模板 二、springboot集成发送短信1、引入依赖2、编写短信配置文件3、编写短信发送工具类 一、准备工作 在使用springboot集成短信服务之前,需要先注册阿里云的账…

VMware vSphere运维管理手册

适用版本:VMware vSphere 7.0 VMware vSphere 是 VMware 的虚拟化平台,可将数据中心转换为包括 CPU、存储和网络资源的聚合计算基础架构。vSphere 将这些基础架构作为一个统一的运行环境进行管理,并为您提供工具来管理加入该环境的数据中心。 ![[Pasted image 20231212132…

uni-app的学习【第二节】

四 路由配置及页面跳转 (1)路由配置 uni-app页面路由全部交给框架统一管理,需要在pages.json里配置每个路由页面的路径以及页面样式(类似小程序在app.json中配置页面路由) (2)路由跳转 uni-app有两种页面路由跳转方式:使用navigator组件跳转(标签式导航)、调用API跳…

使用Markdown编辑器

使用Markdown编辑器 本Markdown编辑器使用[StackEdit][6]修改而来,用它写博客,将会带来全新的体验哦: Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的…

比亚迪:从低谷中涅槃,内功造就辉煌

修炼内功才能绽放光芒吗? 比亚迪用自己的奋斗史证明~ 只有经历低谷的洗礼,才能铸就属于自己的辉煌。 比亚迪这家公司的发展历程可谓是一部从战略转型到今天这个行业翘楚的奋斗史,真是跌宕起伏令人唏嘘。早期比亚迪从一个传统企业转型到汽车行业&#xf…