学习笔记
Java基础相关
JVM内存模型及线程空间
动态代理
java并发编程
Java中Future
移动端相关
杂乱整理
开发工具相关
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一键安装命令软件列表
Java基础知识
精选网站
有声主播知识
学习笔记
有声主播入门到进阶
有声主播新手的入门练手内容推荐
DeepSeek分析喜马拉雅旗下 喜播平台 的有声主播培训
录书设备资料1
典故专辑资料整理
0B. 脚本和大纲
01. 柳赠别——灞桥烟雨中的离愁
0A. 前置准备资料
-
+
home page
搞定群晖总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`的形式来拉取代码了。 
嘿手大叔
Dec. 6, 2024, 5:48 p.m.
转发文档
Collection documents
Last
Next
手机扫码
Copy link
手机扫一扫转发分享
Copy link
Markdown文件
share
link
type
password
Update password