学习笔记
Java基础相关
JVM内存模型及线程空间
动态代理
java并发编程
Java中Future
移动端相关
杂乱整理
HarmonyOS 鸿蒙开发知识
ArkTS中如何自定义组件和复用统一样式
开发工具相关
Git cmd学习整理
Markdown用法大全集
【2023年12月】工作常用
Git如何单独合并某次提交到另一个分支
前端开发相关
Node+TypeScript相关记录
TypeScript 读写 MariaDB
Node TypeScript项目 token生成、管理及拦截校验的实现
TypeScript+Express创建和实现一个服务示例
Express接口处理器抽取注册方式
Express 实现 RESTful API
创建 TypeScript Express 项目,并配置直接用 npm start 运行
TypeScript + Express 实现文件下载接口
export 和 export default的区别
TypeScript+Express 实现用户注册和登录接口
TypeScript 和 JavaScript 中,`===` 和 `==`
CSS中的尺寸大小标准
小程序px和rpx
使用Python快速处理Excel的合并拆分
读书写作相关
一些句子01
李敖语录
罗翔老师的一些经典语句
周易相关知识
周易是对自然描述还是为自然立法
40句落寞诗词,穿透柔魂弱魄
杂玩整理
黑苹果睿频问题
基于纯Linux自己部署Nas构思
Ubuntu换源
Ubuntu挂载tf卡
Ubuntu运行Docker报错
Ubuntu安装运行Docker报错处理
官方镜像安装Docker
Docker 设置root dir 切换数据到其他存储位置
systemctl stop docker 报错
NextCloud安装ffmpeg 显示视频缩略图
Docker源不生效解决方式
Docker源不生效解决方式II——搭建docker-hub镜像
搞定群晖总Docker部署gitea启用ssh协议
MacOS一键安装命令软件列表
群晖ssl证书目录
Java基础知识
精选网站
有声主播知识
学习笔记
有声主播入门到进阶
有声主播新手的入门练手内容推荐
DeepSeek分析喜马拉雅旗下 喜播平台 的有声主播培训
录书设备资料1
典故专辑资料整理
0B. 脚本和大纲
01. 柳赠别——灞桥烟雨中的离愁
0A. 前置准备资料
Ai大数据模型
模型整理
使用 DeepSeek 通用公式
学会这8招,让DeepSeek变得超好用!
大数据购物分析选优
Windows和Ubuntu部署DeepSeek性能差距
本地部署 Ollam+DeepSeek 探索爬坑
模型对比测试
AI模型使用心得
小说创作需求说明书
-
+
首页
搞定群晖总Docker部署gitea启用ssh协议
 自己在群晖主机上使用Docker搭建了一个gitea的服务,已经使用多年了。主要是用来托管一些自己的代码,或者是和朋友们协同开发搞点事情。但是由于网络拓扑相对较为复杂,git的ssh鉴权功能一直没有解决。 这多年了,一直是用https协议来拉取和推送代码,虽然也能记录账号和密码不需要每次登录,又不是不能用;但是,这终究是没有ssh更好用(更有逼格),这也让人如鲠在喉想起来就不爽。 前段时间正好升级了nas主机,借此机会来研究一番,尝试把gitea的ssh能力搞定他。 1. ### 创建本地git账户 首先去查阅了gitea的官方指导文档。其中“安装——使用Docker安装——ssh容器直通”条目中有详细的记录,很值的参考。  文档要求第一步先在主机上创建一个名为git的账户,对于我等多年菜鸟,这还不是和开关机一样简单的事情吗? 打开群晖"控制面板 – 用户与群组" 创建 git 用户。 下一步。 what fuck!居然报错: "出于安全原因禁止创建"。 账号名2不能叫 git就很蛋疼啊,比如创建一个fucker用户,然后你的ssh链接就会变成这样:🔽 ```shell ##克隆仓库时 SSH 正常协议地址 git@xxxx.com:<username>/<repository name>.git ##如果是 fucker 的话,就成了: fucker@xxxx.com:<username>/<repository name>.git ``` 你看,这样是不是很别扭?起码逼格少了一半啊。 UI界面不让搞,是不是命令行可以绕过去呢?毕竟群晖也就是个Linux,ssh链接走起: 打开群晖ssh端口,然后ssh登录上去试试,不就是个adduser嘛:  What Fuck x2!群晖居然没有 useradd 和 adduser命令!!!我感觉整个人都不好了。。。 好吧,李敖大师说过,搞研究的人要有“上穷碧落下黄泉,动手动脚找东西”的精神,那我们也来发扬一下。 终于,在群晖官网的 CLI Administrator Guide 里提到了一个命令 synouser,按照文档中的说明,我执行了下面的命令,成功了创建了 git 用户。 ```shell synouser --add git "passwd" "" 0 "" 0 ``` 因为 git 用户要将 SSH 连接转发到容器,所以还要去控制面板把 git 添加到 administrators 群组,否则没有权限。 至此拦路虎搞定。 ### 2. 修改docker-compose.yaml文件重新部署gitea服务 第一个小问题,按文档需要给容器设置uid和gid,文档中默认的都是1000; ``` environment: - USER_UID=1000 - USER_GID=1000 ``` 我们需要在群晖上通过 ``` id git ## 输出类似这样 uid=1029(git) gid=100(git) groups=100(git),101(users) ``` 来查询出git账号的uid和gid,把yaml文件修改成正确的uid和gid。 然后第二个问题, 文档中提示需要将主机的 /home/git/.ssh 装入容器。否则,SSH 身份验证将无法在容器内运行。 ```yaml volumes: - /home/git/.ssh/:/data/git/.ssh ``` 实际上在群晖上是找不到对应的目录的,群晖自己对Linux目录结构做了很大改动。 实际的git用户home目录是在/var/services/homes/git;所以对应修改yaml文件: ```yaml volumes: - /var/services/homes/git/.ssh/:/data/git/.ssh ``` 剩下的就不说了,完全安装gitea官方文档抄作业就好了。 ### 3. 搞定,Happy3分钟! 至此,拦路多年的大石头终于搬掉了,可以愉快的使用`git@[servername]:[user]/[demo].git`的形式来拉取代码了。 
嘿手大叔
2024年12月6日 17:48
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
分享
链接
类型
密码
更新密码