GPG 密钥生成失败 - 没有这样的文件或目录

GPG 密钥生成失败 - 没有这样的文件或目录

我相信我已经阅读并尝试了所有建议,从这个帖子关于完全相同的问题。

我正在尝试使用以下命令生成新密钥:

gpg --full-generate-key

它一直以以下内容结尾:

gpg: agent_genkey failed: No such file or directory
Key generation failed: No such file or directory

Ubuntu 18.04.4 LTS (GNU/Linux 4.15.0-88-generic x86_64),无头

gpg --version

gpg (GnuPG) 2.2.4
libgcrypt 1.8.1
Home: /home/mark/.gnupg
Supported algorithms:
Pubkey: RSA, ELG, DSA, ECDH, ECDSA, EDDSA
Cipher: IDEA, 3DES, CAST5, BLOWFISH, AES, AES192, AES256, TWOFISH,
    CAMELLIA128, CAMELLIA192, CAMELLIA256
Hash: SHA1, RIPEMD160, SHA256, SHA384, SHA512, SHA224
Compression: Uncompressed, ZIP, ZLIB, BZIP2

我已经多次杀死 gpg-agent 并重新启动服务器。

gpgconf --kill gpg-agent

ps aux | grep gpg-agent

mark      1637  0.0  0.0  14428  1052 pts/0    S+   13:55   0:00 grep --color=auto --exclude-dir=.bzr --exclude-dir=CVS --exclude-dir=.git --exclude-dir=.hg --exclude-dir=.svn gpg-agent

.gnupg 目录权限:

drwx------ 3 mark mark 4.0K Mar 6 14:01 .gnupg

我已多次删除 ~/.gnupg,每次都重新启动以获得良好的效果:

ls -la ~/.gnupg

total 12K
drwx------  3 mark mark 4.0K Mar  6 14:00 .
drwxr-xr-x 17 mark mark 4.0K Mar  6 14:01 ..
drwx------  2 mark mark 4.0K Mar  6 14:00 private-keys-v1.d

我已重复以下多次,但结果相同:

尝试生成 gpg 密钥

ls -la ~/.gnupg

total 16K
drwx------  3 mark mark 4.0K Mar  6 14:01 .
drwxr-xr-x 17 mark mark 4.0K Mar  6 14:04 ..
drwx------  2 mark mark 4.0K Mar  6 14:00 private-keys-v1.d
-rw-------  1 mark mark   32 Mar  6 14:01 pubring.kbx

我换成pubring.kbx700再跑,结果还是一样(抓着救命稻草)

ps aux | grep gpg-agent

 mark      1751  0.0  0.0  93316  3348 ?        SLs  14:02   0:00 /usr/bin/gpg-agent --supervised
 mark      1758  0.0  0.0  14428  1084 pts/0    S+   14:06   0:00 grep --color=auto --exclude-dir=.bzr --exclude-dir=CVS --exclude-dir=.git --exclude-dir=.hg --exclude-dir=.svn gpg-agent

我也运行过strace但不知道如何破译该输出。最后一行是+++ exited with 2 +++

strace -o /tmp/foo gpg --full-generate-key

我在这里不知所措。

答案1

gpg --gen-key --homedir /home/NEWUSER/.gnupg --passphrase "PASSWORD" --pinentry-mode loopback

答案2

我遇到了看起来很像这样的事情......

就我而言,这是因为我已经gpg-agent运行并删除了它所引用的文件以便“重新开始”。通过杀死旧的gpg-agent我解决了这个问题。

答案3

[交叉发布自相关问题.]

这个问题这被称为预期行为,原因是缺乏与终端相关的设备文件的所有权。例如,当以普通用户身份启动终端,但运行gpg命令时,可能会发生这种情况通过susudo.

不再在树上做疯狂的chmod特技/dev这条评论演示了使用的快速修复tmux。基本上只需在会话gpg中运行相同的命令tmuxtmux即可处理正确的设备文件所有权。

相关内容