问题标签 [gpg-agent]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
3976 浏览

debian - gpg: 无法连接到代理:IPC 连接调用失败,无法终止 gpg-agent

gpg-agent不断记录(每 2 秒)到syslog

gpg: can't connect to the agent: IPC connect call failed

我遵循了这一点,但这实际上是不可能的,因为一旦进程被杀死,它会自动重生,我无法永久杀死它。我也尝试gpgconf --kill gpg-agent过同样的结果。

我在 Debian Stretch 上。如何终止此过程?为什么会syslog被这些信息填满?

0 投票
1 回答
212 浏览

linux - GPG 在 root 拥有的存储库上签署 Git 提交

我有一个由 root 用户拥有的 Git 存储库,我可以使用sudo. 通常为了在 Git 中使用这个 repo,我使用sudo -E git .... 该-E标志是必需的,以便 sudo 中的 Git 继承我的默认 Git 配置,例如作者...等。

我决定尝试对这个存储库进行 GPG 签名,所以我启用了这些选项。

但是在尝试提交时:

但是,gpg 似乎无法使用我的用户配置文件中存在的 GPG 密钥对该存储库进行签名。

我发现了有关此问题的新信息:https ://github.com/NixOS/nixpkgs/issues/57779

0 投票
1 回答
968 浏览

linux - 没有密码的签名 rpm

我试图在签名时禁用任何密码,或者至少使用签名命令发送密码。

我有 gpg (GnuPG) 2.0.27 和 libgcrypt 1.5.4

当我运行( rpm --addsign xxxxxxxxxx.rpm )时,我弹出密码

我找到了一个不适合我的 keygrip 解决方案

这些是 rpm 选项:

--checksig --erase --freshen --import --install --querytags --setperms --showrc --verify

0 投票
1 回答
611 浏览

git - 如何在 Windows 上使用 GPG 向 Github 进行 SSH 身份验证?

我有 gpg4win 套件并且已经使用 Kleopatra 创建了一个证书,我想使用现有证书通过 SSH 对 github 进行身份验证,而不是使用 git 安装附带的 ssh-agent。

github 帮助页面解释了如何使用 ssh-agent 生成新的密钥对以及如何将其添加到代理进行身份验证,但我很好奇我是否可以使用 gpg (gpg4win) 做到这一点?或者至少将现有证书与 ssh-agent 一起使用。

这是否可能以及如何实现这一目标?

0 投票
1 回答
1785 浏览

gnupg - GPG:如何删除错误的会话密钥并再次被要求输入加密密码?

我试图解决这个 Geocache:

https://www.geocaching.com/geocache/GC67EXW_signaturbruch

当我尝试解决时,它给了我一个密码提示,gpg message.asc但当时我不知道正确的密码。

现在我知道了,但无论我如何尝试,它都不会再次给我密码提示。

输出如下:

(我在德国 MacOs Mojave 10.14.6 上,我gpg --version给了我这个:

有人可以告诉我,我怎样才能再次被要求输入密码???我在整个互联网上搜索了诸如“重新启动计算机”、重新安装所有 gpg 工具、删除所有 .gpg 文件等解决方案,但没有什么能让它变得更好。

提前致谢。

0 投票
1 回答
3314 浏览

gnupg - GPG 无法连接到 S.gpg-agent:连接被拒绝

我正在尝试使用 gpg 代理设置 gpg 预设密码缓存,以便我可以自动化我的文件加密过程。为了让 gpg-agent 运行并正确缓存密码,似乎需要有一个位于 ~/.gnupg/ 目录中的S.gpg-agent套接字,当我设置 gpg 和gpg 代理。

我所做的(过去似乎可行)是我将以 root 身份启动所有内容,并将 /.gnupg 目录的内容复制给我的特权较低的用户,并将对该套接字和目录的权限授予用户。我为启动 gpg-agent 守护进程和缓存密码而运行的命令:

gpg-agent 进程似乎运行得很好,但我从第二行得到以下错误:

我已确保套接字存在于具有适当权限的目录中,并且此过程以 root 身份运行。即使我复制和修改权限,这个套接字似乎仍然与 root 绑定。所以我的问题是

  1. 这个套接字究竟是如何初始化的?
  2. 有没有办法以其他用户的身份手动执行此操作?

补充一点,代理进程似乎对两个用户都运行得很好,但我有点模糊的是 gpg-preset-passphrase 是如何使用套接字的,如果它或者拒绝连接的代理S.gpg-agent 我也假设我不需要显式启动代理,但我想我会这样做,以便我可以在需要时设置任何值,例如 homedir。

0 投票
0 回答
499 浏览

gnupg - 我应该在哪里为 GnuPG 2.0 及更高版本指定 pinentry 程序?

我将介绍 git-crypt 或 git-secret 来加密 git 存储库中描述的凭据信息。

这就需要 GnuPG(GPG) 提供一种加密方式。我已经用自制软件安装了以下程序:

  • gnupg
  • gnupg2
  • pinentry-mac

从 GnuPG 2.0 开始,无需单独安装 gpg-agent。

GnuPG 2.1 中的新功能

但是如何设置 pinentry-program 呢?我尝试在 gpg-agent.confg 中将 pinentry-mac 设置为 pinentry-program,就像我在以前的版本中所做的那样。它对我不起作用。

替换 gpg-agent.conf 的文件是什么文件,或者是否需要任何额外的过程,例如重新启动 gpg?

0 投票
0 回答
1348 浏览

gnupg - 完全禁用所有用户的 gpg-agent 缓存

我想完全禁用 GPG 缓存。即,对文件进行对称加密,然后让它每次都要求输入密码。

具体来说,我正在使用 GPG 2.2.14 尝试执行以下操作:

我尝试添加一个~/.gnupg/gpg-agent.confwithdefault-cache-ttl和 max-cache 都设置为 1 但这似乎不起作用。我也尝试过加密,--no-symkey-cache但这似乎并不能阻止密码缓存。两者结合起来也不会阻止缓存。在第一次尝试时,它会询问密码,然后将其缓存并且不再询问。

我希望对文件进行加密,并对所有用户(包括我自己和 root)进行nuked 和再也看不到密码。有人知道怎么做吗?

系统是在树莓派 4 上运行的 Raspbian Buster 10。

0 投票
2 回答
791 浏览

php - 集成 PHP、SSH 和 ssh-agent

我计划编写一个建立 SSH 连接的 PHP 脚本。我已经研究了如何做到这一点,这看起来是最有希望的解决方案:https ://github.com/phpseclib/phpseclib我唯一的问题是如何处理我的 SSH 密钥有密码的事实,我不想每次运行脚本时都必须输入它。对于 SSH 使用的每一天,我都会在后台运行 ssh-agent,它被配置为使用 pinentry。这样我就不必每次都输入密码了。关于如何让 PHP 和 ssh-agent 相互交谈的任何想法?我唯一的线索是 ssh-agent 设置了一个环境变量SSH_AUTH_SOCK,指向一个套接字文件。

虽然 phpseclib 的文档解决了这个问题,但它的答案很愚蠢(只需将密码放入代码中):http://phpseclib.sourceforge.net/ssh/2.0/auth.html#encrsakey

更新:我更深入地研究了 phpseclib 并编写了我自己的简单包装类。但是,我无法通过 ssh-agent 或提供我的 RSA 密钥来登录。与我直接使用 ssh 命令登录的经验相反,只有基于密码的身份验证有效。这是我的代码:

和:

该类SSH2有一个getErrors()方法,不幸的是在我的情况下它没有记录任何内容。我不得不调试课程。我发现,无论是使用 ssh-agent 还是传入我的密钥,它总是会到达这个位置(https://github.com/phpseclib/phpseclib/blob/2.0.23/phpseclib/Net/SSH2.php#L2624):

显然返回的响应是 type NET_SSH2_MSG_USERAUTH_FAILURE。我敢肯定,登录没有问题,因此根据代码中的注释,这意味着主机(数字海洋)必须使用多因素身份验证。这就是我难过的地方。我还缺少什么其他的身份验证方式?这就是我对 SSH 的理解失败的地方。

0 投票
2 回答
1206 浏览

git - 无法通过 gpg 密钥错误提交到 git

使用git version 2.20.1和官方指南,我运行以下命令来生成一个 pgp 密钥

现在我可以使用以下命令查看公钥:

然后我根据这个官方页面复制了网站中的密钥。

在此处输入图像描述

现在,当我想提交时,我收到一个密钥签名错误:

我该如何解决?

更新:

导出以下变量将解决问题。

我是怎么做到的?首先,我检查~/.gitconfig以确保该[user]部分是正确的。然后我运行了以下测试命令,它给了我一个 ioctl 错误

搜索该错误导致export GPG_TTY=$(tty)然后测试命令很好。因此,commit 命令现在可以了。