这是我的设置:
- Windows 10 机器,我的台式电脑。
- Ubuntu 18机器,这是我的家庭服务器
- Yubikey,上面有我的 GPG 私钥
我的工作流程如下:
- 将我的 Yubikey 插入 Windows 10 计算机上的 USB 端口。
- 从我的 Windows 10 计算机上,使用 Putty 通过 SSH 连接到我的 Ubuntu 计算机。
- 在 Ubuntu 计算机上,通过 Putty,使用 Git 将一些更改提交到 ubuntu 计算机上克隆的存储库。
- 需要使用我的 Yubikey 上的私钥在 ubuntu 计算机上签署这些提交,该私钥插入到我的 Windows 10 计算机中。
我可以直接在 Windows 10 计算机上签署提交,因为我gpg-agent
使用 Gpg4Win 启动,它会检测我的 USB 密钥并提示我在签名/加密任何内容之前输入 PIN。当我尝试在 Ubuntu 机器上的 Git 中签署提交时,我希望发生同样的事情。因此,在某种程度上,我希望 Ubuntu 和 Windows 计算机之间的现有 SSH 连接充当 Windows 计算机上 gpg-agent 的代理,以便从 Ubuntu 调用时在我的 Windows 计算机上进行加密。
我不确定这是否可能。我在网上找到的 GPG 代理转发帮助似乎与此相反:主机将加密委托给远程计算机。但这不是我正在做的,因为我没有将 yubikey 插入我的 Ubuntu 服务器机器。
更复杂的是,这些不是两台交互的 Linux 机器,而是一台 Windows 和 Linux 机器。所以我不确定 Gpg4Win 的加入是否会让这变得更困难甚至不可能。
如何使用 Windows 计算机上可用的私钥在 Ubuntu 计算机上签署 git 提交?