You need to enable JavaScript to run this app. 如何在VSCode DevContainer中配置GPG签名且不转发到本地
优惠活动
大模型
产品
解决方案
定价
更多

如何在VSCode DevContainer中配置GPG签名且不转发到本地

手动配置VSCode Docker容器内GPG方案(无需remote-containers自动转发)

以下方案适配你使用的VSCode 1.56.2、remote-containers 0.177.2版本,可完全绕过扩展自带的自动转发机制完成配置:

步骤1:本地导出GPG密钥对

在你本地宿主机的终端执行以下操作:

  • 执行gpg --list-secret-keys --keyid-format LONG,找到需要使用的签名密钥ID,记录sec行中/后方的字符串即为密钥ID
  • 导出公钥:gpg --export -a [你的密钥ID] > gpg-public.key
  • 导出私钥:gpg --export-secret-keys -a [你的密钥ID] > gpg-private.key
    注意:导出的私钥属于敏感信息,配置完成后请及时删除本地临时导出的密钥文件

步骤2:将密钥文件挂载到容器

两种挂载方式任选其一即可:

方式1:通过devcontainer.json配置(适用于通过remote-containers打开容器的场景)
在项目的.devcontainer/devcontainer.json文件中添加挂载配置:

"mounts": [
    "source=/本地密钥的绝对路径/gpg-public.key,target=/tmp/gpg-public.key,type=bind,readonly",
    "source=/本地密钥的绝对路径/gpg-private.key,target=/tmp/gpg-private.key,type=bind,readonly"
]

修改保存后重建容器即可生效。

方式2:手动启动容器时添加挂载参数
如果你是手动执行docker run启动容器,在启动命令中添加以下参数:
-v /本地密钥的绝对路径/gpg-public.key:/tmp/gpg-public.key:ro -v /本地密钥的绝对路径/gpg-private.key:/tmp/gpg-private.key:ro

步骤3:容器内导入并配置GPG

进入容器终端后依次执行以下命令:

  • 导入公钥:gpg --import /tmp/gpg-public.key
  • 导入私钥:gpg --import /tmp/gpg-private.key
  • 设置密钥信任等级:执行gpg --edit-key [你的密钥ID],进入交互界面后输入trust,选择等级5(绝对信任),最后输入save退出交互界面
  • 验证配置:执行echo "test" | gpg --clearsign,若正常生成签名内容即为配置成功,若密钥设置了密码,按提示输入密码即可。

可选:持久化GPG配置

如果不需要每次重建容器都重新导入密钥,可以在挂载配置中新增一行,将容器内的~/.gnupg目录绑定挂载到本地宿主机的指定目录,后续启动容器会自动复用已有的GPG配置。

内容的提问来源于stack exchange,提问作者user16175264

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.17 12:06:02