【问题标题】:Must GnuPG to have installed keys for every username profile?GnuPG 必须为每个用户名配置文件安装密钥吗?
【发布时间】:2012-12-12 01:46:37
【问题描述】:

我正在(在我的本地机器上)运行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 字段中写入 - another 用户也是我本地计算机上的管理员 - 它说:

gpg:解密失败:没有密钥

然后我再次切换到RoyiN,它确实有效

  • 是否为每个用户安装了密钥?有没有办法改变它,所以它将是全球性的? (因此机器上的每个用户都可以使用这些密钥——不必在每个配置文件下安装密钥)?

  • 这也意味着如果我想允许其他人连接到我的计算机 - 我必须使用 RoiyN 24/7.... 登录。

有什么解决方法吗?

【问题讨论】:

    标签: c# process permissions pgp gnupg


    【解决方案1】:

    这里发生了两件与运行 gpg 的“人”有关的不同事情。

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

    • 除此之外,GnuPG 密钥是为一个身份生成并与一个身份相关联的,该身份通常是您的电子邮件地址。接收文件时,数据将指定解密和/或验证完整性所需的密钥的人的身份。加密或签名文件时,您必须告诉 GPG 使用谁的密钥。当您为他人签署东西,或当您解密发送给您的数据时,您的密钥会被使用。您需要确保适当的密钥位于您使用的任何密钥环文件中,无论它在哪里。

    当您运行 gpg 时,您无需真正保持登录状态,如果您为数据提供了一个明确的位置。只是 gpg 默认会读取登录时设置的当前环境变量,以确定这些东西在哪里。

    如果您想在无人值守的情况下运行 GPG,您可能需要指定密钥环文件路径、秘密密钥环文件路径和配置文件路径。您可以指定的完整选项列表位于 GPG Configuration Options 页面上。

    (您可能想尝试仅从 --homedir 选项开始,我认为会一次性覆盖其他所有内容的默认路径,但您需要对其进行测试当然。)

    【讨论】:

    • 我只需要给它一个keys的路径。不是路径+文件名...对吗?
    • 大部分选项都是文件名,例如--secret-keyring C:\ProgramData\secring.gpg--homedir 只是一条路径。该文档在正确使用“文件”和“目录”方面非常一致。
    • 请回答 2 个问题。 1) 有几个。哪条线? i.stack.imgur.com/WgV5g.jpg 2) 如果我安装新密钥,我应该再次将 *.gpg 复制到共享文件夹吗?
    • 1.您需要 3 个文件;我认为您想要前 3 个(我很确定后 3 个只是指向第一个的链接)。 2. 是的,如果您更改任何密钥环,则需要更新共享副本。
    【解决方案2】:

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

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

    虽然,最好使用自己的公钥为您的自动化系统创建一个单独的密钥 - 拥有您高度信任的密钥的人也会接受这个。

    【讨论】:

    • 24/7 问题怎么样?'
    • 将被修复,因为应用程序现在将使用管理员帐户运行。只是不要忘记添加 --batch 选项(IIRC)来强制 gpg 以非交互方式运行。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-12-16
    • 1970-01-01
    • 2012-07-02
    • 2014-08-29
    • 1970-01-01
    • 2016-12-25
    • 1970-01-01
    相关资源
    最近更新 更多