# 使 Gitea Web 操作 Git 有 GPG 签名 记录一下 Gitea Web 操作 Git 的 GPG 签名步骤,如果自己搭建,需要签名可能会有一点点用。 官方文档 [GPG 提交签名](https://docs.gitea.com/zh-cn/administration/signing) 注意 GPG 签名不要有密码,自动化脚本很难处理输入密码。 配置文件部分示例 ```ini [repository.signing] # DEFAULT_TRUST_MODEL = committer SIGNING_KEY = default INITIAL_COMMIT = pubkey CRUD_ACTIONS = pubkey WIKI = pubkey MERGES = pubkey ``` 正常默认会暴露一个文件夹,其中有三个文件夹 git , gitea , ssh 。默认会在 %(APP_DATA_PATH)/home 中运行 git 。如果比如配置文件 app.ini 中 `APP_DATA_PATH=/data/gitea`。在容器内 `/data/gitea/home` 下会有 `.gitconfig` 文件,需要`gpgsign = true` 和 user 的三数据,示例如下。 ``` [user] email = mail@gmail.com name = mailer signingkey = xxxxxxxxxxxxxxx [commit] gpgsign = true ``` 然后,把 GPG 数据问你`.gnupg` 目录放在容器内 `/data/gitea/home` 文件夹下。 **注意:由于 Gitea 在 Docker 内使用 git 账户,因此注意文件夹的 owner 和组。可使用 chgrp chown 两个命令来处理。我之前没有注意到,出现了 Error: exit status 1Stdout: Stderr: error: gpg failed to sign the data 问题** 如果在网页编辑,在提交 commit 那里看到一个小锁🔒,就说明找到密钥了。能成功 commit ,证明成功了。如果成功后,图标不是绿色。可以在该库的设置里,签名验证设置-签名信任模型 选择 协作者:信任协作者的签名 最终效果 正常在自己电脑上使用自己的签名,一个实心锁 ![](https://cdn.ftls.xyz/images/2023/06/20230718180342.png) Web API 操作,Gitea 使用的签名。有区别的锁 ![](https://cdn.ftls.xyz/images/2023/06/20230718180234.png)