8

我目前正在远程服务器上开发代码,方法是使用 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"

在终端中调出全屏 UI

┌────────────────────────────────────────────────────────────────┐
│ 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>       │
└────────────────────────────────────────────────────────────────┘

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

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

4

1 回答 1

5

挖了一会儿,我找到了两个解决方案:

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

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

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

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

于 2021-02-16T02:25:27.290 回答