GnuPG必须为每个用户名配置文件安装密钥

本文关键字:配置文件 安装 密钥 用户 GnuPG | 更新日期: 2023-09-27 17:49:30

我正在运行(在本地机器上)GPG (wingpg) -命令行版本。

我的登录名在win7 -是RoyiN。(所以我有一个配置文件)

当我登录时-我已经安装了私钥和公钥(使用PKA.exe)。

所有罚款。

然后我写了这段代码(这是工作)

  Process proc = new Process();
  proc.StartInfo.FileName = cfg.PGP_Program_FullPath;
  proc.StartInfo.UserName = "Royin";
  proc.StartInfo.Domain = ...;
  proc.StartInfo.Password = ...
  proc.StartInfo.Verb = "runas";
  proc.Start();
 ...

然而,如果我在UserName字段中写入另一个用户,也是我本地机器上的管理员-它说:

gpg: decrypate failed: No secret key

然后我再次交换到RoyiN,它确实工作

  • 每个用户都安装密钥吗?有没有办法改变这一点,使其成为全球性的?(这样机器上的每个用户都可以使用这些密钥- 而不必在每个配置文件下安装密钥)?

  • 这也意味着,如果我想让别人连接到我的计算机-我必须登录与RoiyN 24/7....

有什么解决方法吗?

GnuPG必须为每个用户名配置文件安装密钥

这里有两件不同的事情与运行gpg的"人"有关。

  • GPG在默认的keyring文件中搜索密钥,这些密钥安装在您的用户配置文件目录(在名为.gnupg的文件夹下)。这将是一组文件,如pubring.gpgsecring.gpg。这部分很容易解决:传递--secret-keyring "path'to'file"作为参数之一,它会将该密匙环文件添加到其搜索路径中。您可能希望将其移动到一个公共可读的位置,如%ALLUSERSPROFILE%,首先。

  • 除此之外,GnuPG密钥是为一个身份生成并绑定到一个身份的,这个身份通常是您的电子邮件地址。接收文件时,数据将指定解密和/或验证完整性所需密钥的人员的身份。当加密或签名文件时,您必须告诉GPG使用谁的密钥。当您为他人签署内容时,或者当您解密发送给您的数据时,使用您的秘密密钥。您需要确保在您使用的任何keyring文件中都有适当的密钥,而不管它在哪里。

在运行gpg时不需要实际保持登录状态,如果为数据指定了明确的位置。很简单,默认情况下,gpg读取当前环境变量,在登录时设置,以确定这些东西在哪里。

如果您想在无人值守的情况下运行GPG,您可能需要指定一个keyring文件路径,一个秘密keyring文件路径和一个配置文件路径。您可以指定的选项的完整列表在GPG配置选项页面。

(你可能想尝试从--homedir选项开始,其中我认为将覆盖默认路径的所有其他的,但你需要测试,以确保。)

是的,它们是按用户安装的

简单的答案-只需导出私钥/公钥对,并为管理员帐户安装它。

虽然,最好为您的自动化系统创建一个单独的密钥,并使用自己的公钥-无论谁拥有您的密钥并具有高度信任,都将接受此密钥。