Questions tagged «gpg-agent»


1
GPG代理如何工作?
我的gpg.conf文件中有一行内容为use-agent。 我知道这是指gpg-agent这是一个守护程序。手册页指出:“ gpg-agent是一个守护程序,可以独立于任何协议管理秘密(私有)密钥。它用作gpg和gpgsm以及其他几个实用程序的后端。” 谁能解释在gpg的背景下这意味着什么?gpg-agent的意义是什么? 我目前有GPG 1.4。 如何判断代理是否正在运行?实际上,我什至不清楚gpg-agent是否随基本GPG 1.4软件包一起安装。 如果未运行,如何启动它? 如果它正在运行,如何停止它?
31 gpg  gpg-agent 

2
如何使gpg找到gpg-agent
在Fedora 22上,gpg找不到gpg-agent: % gpg-agent --daemon % gpg -vvv --use-agent --no-tty --decrypt file.gpg gpg: using character set `utf-8' :pubkey enc packet: version 3, algo 1, keyid 3060B8F7271AFBAF data: [4094 bits] gpg: public key is 271AFBAF gpg: using subkey 271AFBAF instead of primary key 50EA64D5 gpg: using subkey 271AFBAF instead of primary …
23 gpg  gpg-agent 

1
Gentoo Linux GPG对通过参数传递的文件进行了正确加密,但是从标准输入中读取时会抛出“设备不正确的ioctl”
我正在运行带有内核4.1.7-hardened-r1的Gentoo Hardened,并且尝试使用GPG从SSH打开的Shell会话中使用GPG加密文件,并DISPLAY禁用该变量,以便使用pinentry-curses进行密码提示。使用gpg -o file.gpg --symmetric file我可以加密就可以了。使用pv file | gpg -o file.gpg --symmetric我得到以下错误信息: gpg-agent[30745]: command get_passphrase failed: Inappropriate ioctl for device
23 ssh  gentoo  gpg  gpg-agent 

3
GPG代理不会从密钥环中删除我的SSH密钥
我有一个非常麻烦的问题。我无法gpg-agent从其密钥环中删除我的SSH密钥,甚至在多次重启后它仍然存在。 $ ssh-add -D SSH_AGENT_FAILURE Failed to remove all identities. 即使我告诉它删除身份: $ ssh-add -d /path/to/private/key Identity removed: /path/to/private/key 然后我看 $ ssh-add -l 4096 1b:cb:52:a6:e5:13:e6:78:14:12:92:8f:34:8f:92:88 /path/to/private/key 它仍然在那里。 这在哪里缓存?由于某种原因,它似乎正在写入磁盘,这对于SSH代理来说是一件令人恐惧的事情。我正在运行以下内容开始gpg-agent: gpg-agent --enable-ssh-support --daemon 其他所有东西都可以正常工作,但是它将这个文件缓存在某个地方,我需要删除它。
14 ssh  gpg-agent 

1
gpg按需启动gpg-agent?
gpg-agent状态手册页: The agent is usualy started on demand by gpg, gpgsm, gpgconf or gpg-connect-agent. Thus there is no reason to start it manually. In case you want to use the included Secure Shell Agent you may start the agent using: gpg-connect-agent /bye The usual way to run the agent is …

2
Pinentry因gpg-agent和SSH失败
我正在运行Fedora22。我正在尝试设置GnuPG以使用位于Yubikey Neo上的PGP身份验证子项对SSH连接进行身份验证。 我有一个启动gpg-agent的systemd单元,如下所示: /usr/bin/gpg-agent --homedir=%h/.gnupg --daemon --use-standard-socket 并且我在配置中启用了SSH支持: enable-ssh-support pinentry-program /usr/bin/pinentry-gtk 设置的其他部分包括将我的密钥的keygrip添加到~/.gnupg/sshcontrol文件中,将我的公共密钥添加到远程主机以及声明环境变量。 从全局看安装程序似乎可以运行的各种日志,我可以看到SSH找到了密钥,但实际上没有用它签名。如果查看来自的日志gpg-agent,则可以看到它无法启动pinentry程序,因此,不要求输入PIN码: 2015-07-22 23:23:28 gpg-agent[6758] DBG: error calling pinentry: Ioctl() inappropriate for a device <Pinentry> 2015-07-22 23:23:28 gpg-agent[6758] DBG: chan_8 -> BYE 2015-07-22 23:23:28 gpg-agent[6758] DBG: chan_7 -> CAN 2015-07-22 23:23:28 gpg-agent[6758] DBG: chan_7 <- ERR 100663573 The IPC …

2
gpg-agent拒绝SSH密钥,并通过ssh-add报告“代理拒绝操作”
我在arch linux上使用openssh7.5p1和gnupg 2.1.21(这些是arch随附的默认版本)。我想gpg-agent用作ssh代理。我在我的内容~/.gnupg/gpg-agent.conf: pinentry-program /usr/bin/pinentry-qt enable-ssh-support Arch会自动从systemd启动一个gpg-agent,所以我设置了 export SSH_AUTH_SOCK="$XDG_RUNTIME_DIR/gnupg/S.gpg-agent.ssh" 当我运行时ssh-add -l,它没有报告任何身份,并且没有ps报告gpg-agent --supervised我期望的过程。 不幸的是,当我运行时ssh-add,无论键类型是什么,它都不起作用。这是我如何尝试dsa的示例: $ ssh-keygen -f testkey -t dsa -N '' Generating public/private dsa key pair. Your identification has been saved in testkey. Your public key has been saved in testkey.pub. $ ssh-add testkey Could not add identity "testkey": agent …

2
一次缓存所有gpg子项密码?防止需要输入多个gpg密码?
我可以只输入一次gpg密码并解锁所有子密钥(签名,解密,身份验证)吗? 目前,我需要输入3次gpg密码(用于签名,解密和身份验证)。这很不方便。 我试图提出一个shell脚本。 #!/bin/bash set -x set -e set +o history signing_key=77BB3C48 encryption_key=CE998547 tempfile="$(mktemp)" echo "test" > testfile unset passphrase || exit 1 read -sp 'Enter password. ' passphrase ; echo exec 3<<<"$passphrase" gpg2 --no-tty --use-agent --batch --yes --passphrase-fd 3 --sign-with "$signing_key" --clearsign "$tempfile" gpg2 --no-tty --use-agent --verify "$tempfile.asc" gpg2 …

2
使用gpg-preset-passphrase在2.1.15中缓存通过pinentry输入的密码短语需要采取什么步骤?
我正在尝试缓存密码短语以在无人照管的计算机上使用。由于这样做会带来一定的风险,因此,我宁愿选择要缓存的密码短语,并避免同时设置两者default-cache-ttl和max-cache-ttl令人讨厌的高值,以及避免需要gpg-agent定期清除整个缓存-因此,我正在寻找使用的解决方案gpg-preset-passphrase。我在进行故障排除时发现的某些信息是指旧版本的GnuPG,因此我不确定我是否已充分考虑了所有差异。 首先,按照规定man 1 gpg-agent,我export GPG_TTY=$(tty)在我的.bashrc中。 现在假设我eval $(gpg-agent --daemon --allow-preset-passphrase --default-cache-ttl 1 --max-cache-ttl 31536000)开始启动gpg-agent,注意gpg-preset-passphrase仍然使用--max-cache-ttl(默认2小时)。 然后,我用获取$KEYGRIP所需的秘密子密钥的密钥gpg --with-keygrip -K。 有了这个我尝试/path/to/gpg-preset-passphrase -c $KEYGRIP。在返回时,将打印: gpg-preset-passphrase: caching passphrase failed: Not implemented 尝试再次添加--verbose --debug 6 --log-file /path/to/gpg-agent.log到gpg-agent,我的日志附加了 gpg-agent[4206] listening on socket /run/user/1000/gnupg/S.gpg-agent gpg-agent[4207] gpg-agent (GnuPG) 2.1.15 started gpg-agent[4207] handler 0x7f86ef783700 for fd 5 started gpg-agent[4207] command PRESET_PASSPHRASE …
8 gpg  gpg-agent 

1
使用gpg-agent-connect工具重建ssh私钥文件
~/.ssh/id_dsa由于忘记了密码,我无法访问我的文件(DSA算法中的OpenSSH私钥文件)。 但是,最初,我已经将它导入gpg-agentgpg-agent密码并用gpg-agent密码保护了,我确实知道。而且gpg-agent即使现在我仍然希望使用存储在中的内容重建OpenSSH私钥文件,私钥仍然可以正常工作gpg-agent。 使用gpg-connect-agent工具,通过以下命令序列,尽管我不知道如何将其重构为原始的OpenSSH私钥文件格式,但我认为它能够提取私钥(十六进制/ ascii格式): 开始gpg-connect-agent与--hex选项。 在>提示符下,使用keyinfo --ssh-list命令获取密钥的十六进制ID (确切地说,这是提供密钥十六进制ID的第三个字段)。 在>提示符下,执行keywrap_key --export。 在>提示符下,执行export_key <enter hex ID from step 2>或export_key --openpgp <enter hex ID from step 2>。 现在,在提示输入密码短语,接收并确认密码之后,该gpg-connect-agent工具将显示几十行十六进制和ASCII码,我高度怀疑这是我最初导入的ssh私钥。 然后,它显示OK,肯定表示操作成功。 假设显示的确实是我的ssh私钥(按照“ help export_key”,转储到屏幕上的是密钥的aeswrap-128加密版本;很可能是用我已知的gpg-agent密码加密的),有关如何使用将信息转换为传统的ssh私钥格式将不胜感激(使用perl / python / shell / C程序将是一个加分项!)。
8 gpg-agent 
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.