远程共享无桌面机器Git提交签名工作流优化问询
问题背景与当前工作流
我通过SSH在一台名为shared的远程共享无桌面机器上使用nvim开发。提交代码时需要创建带有SSH签名提交的GitHub Pull Request,但由于机器是共享环境,我不能将SSH密钥存储在上面。此外这台机器配置特殊,无法在本地进行开发,且仓库体积较大。
当前工作流:
- 在本地克隆仓库(称为
local),将shared设为Git远程仓库 - 准备提交PR时:
- 将
shared上的提交拉取到local - 在本地通过重写历史完成签名
- 将签名后的内容推送到我的GitHub Fork(远程仓库
gh-fork)以走PR流程
- 将
如果PR需要后续提交或合并压缩,必须回到shared机器执行以下步骤:
git fetch gh-forkgit reset --hard gh-fork/thebranch# 获取已签名的提交- 添加修改并验证功能正常(或进行合并压缩)
- 通过拉取或fetch+reset将后续修改同步到
local - 再次进行签名
- 推送到
gh-fork
待简化的核心问题
我想简化这个工作流,主要解决两个子问题:
- 远程签名自动化:是否可以提取Git中需要签名的原始数据,编写一个小守护进程将其传输到
local进行自动化签名(带确认步骤以防滥用),再将签名结果传回shared并更新仓库? - 无密钥推送SSH远程仓库:如何在
shared上不存储SSH密钥的情况下,将签名后的结果推送到git@github.com/...这类SSH远程仓库?
已尝试但不满意的方案
- 远程文件系统(sshfs使用起来不可靠)
- rsync/unison(容易混淆文件状态,且git执行
git gc时会导致.git目录全量同步,耗时极长) - distant.vim(一直未配置成功)
- SSH代理转发(不安全)
内容的提问来源于stack exchange,提问作者Edd Barrett
相关产品推荐
相关产品推荐

