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....
有什么解决方法吗?
这里有两件不同的事情与运行gpg的"人"有关。
-
GPG在默认的keyring文件中搜索密钥,这些密钥安装在您的用户配置文件目录(在名为
.gnupg
的文件夹下)。这将是一组文件,如pubring.gpg
和secring.gpg
。这部分很容易解决:传递--secret-keyring "path'to'file"
作为参数之一,它会将该密匙环文件添加到其搜索路径中。您可能希望将其移动到一个公共可读的位置,如%ALLUSERSPROFILE%
,首先。 -
除此之外,GnuPG密钥是为一个身份生成并绑定到一个身份的,这个身份通常是您的电子邮件地址。接收文件时,数据将指定解密和/或验证完整性所需密钥的人员的身份。当加密或签名文件时,您必须告诉GPG使用谁的密钥。当您为他人签署内容时,或者当您解密发送给您的数据时,使用您的秘密密钥。您需要确保在您使用的任何keyring文件中都有适当的密钥,而不管它在哪里。
在运行gpg时不需要实际保持登录状态,如果为数据指定了明确的位置。很简单,默认情况下,gpg读取当前环境变量,在登录时设置,以确定这些东西在哪里。
如果您想在无人值守的情况下运行GPG,您可能需要指定一个keyring文件路径,一个秘密keyring文件路径和一个配置文件路径。您可以指定的选项的完整列表在GPG配置选项页面。
(你可能想尝试从--homedir
选项开始,其中我认为将覆盖默认路径的所有其他的,但你需要测试,以确保。)
是的,它们是按用户安装的
简单的答案-只需导出私钥/公钥对,并为管理员帐户安装它。
虽然,最好为您的自动化系统创建一个单独的密钥,并使用自己的公钥-无论谁拥有您的密钥并具有高度信任,都将接受此密钥。