在远程 VSCode 会话上签署 Git 提交

Nyx*_*nyx 7 git gnupg visual-studio-code git-sign vscode-remote

我目前正在远程服务器上开发代码,方法是使用 Visual Studio Code 的远程 SSH 功能使用在本地计算机上运行的 VSCode 远程编辑代码。本地机器在 Mac OS X Catalina 10.15.5 上,而远程服务器在 WSL2 中运行 Ubuntu 20.02。

当我尝试在 VSCode 中创建常规提交时,它按预期工作。但是,当我尝试自动签名提交时,单击 VSCode 中的“提交”按钮后出现以下错误:

Git:gpg 未能对数据进行签名

为了远程创建签名提交,我必须在 VSCode 终端中运行以下命令:

git commit -S -m "my commit msg"
Run Code Online (Sandbox Code Playgroud)

在终端中调出全屏用户界面

??????????????????????????????????????????????????????????????????
? Please enter the passphrase to unlock the OpenPGP secret key:  ?
? "Nyxynyx <my-email@gmail.com>"                                 ?
? 4096-bit RSA key, ID B22A24D512345678,                         ?
? created 2001-01-08.                                            ?
?                                                                ?
?                                                                ?
? Passphrase: ****************__________________________________ ?
?                                                                ?
?         <OK>                                    <Cancel>       ?
??????????????????????????????????????????????????????????????????
Run Code Online (Sandbox Code Playgroud)

输入正确的密码允许对提交进行签名。

问题:有没有办法只使用 VSCode UI 而不使用终端来创建签名提交?

fra*_*off 5

经过一番挖掘,我找到了两个解决方案:

  1. 如果您在 Windows 上使用 VSCode,并且项目在 WSL2 上

在这里您可以访问您的 C: 驱动器,您可以编辑您的 ~/.gitconfig 并将 gpg.program 设置为您在 Windows 上使用的相同,如下所示:

[gpg]
    program = /mnt/c/Program Files (x86)/GnuPG/bin/gpg.exe
Run Code Online (Sandbox Code Playgroud)
  1. 您正在某个远程工作区上使用 VSCode。

除了使用终端之外,我找到的唯一解决方案是安装名为“ vscode-gpg-indicator ”的扩展程序。按照说明操作,您将在状态栏中获得一个储物柜,您可以在其中在开始提交之前解锁 GPG 密钥。