[我是命令行 gpg 的新手,可能在密钥创建过程中搞错了一些步骤。出于隐私目的,我使用[REDACTED]
]删除了所有密钥信息
我的 gpg 列出了我的公钥
$ gpg --list-keys
/home/seb/.gnupg/pubring.kbx
----------------------------
[REDACTED]
然而,它似乎不知道我的任何私钥
$ gpg -K
$
这很奇怪,因为我.key
的文件夹中有两个文件~/.gnupg/private-keys-v1.d/
。
现在我尝试手动添加它们
$ gpg --allow-secret-key-import --import .gnupg/private-keys-v1.d/[REDACTED].key
gpg: can't open '.gnupg/private-keys-v1.d/[REDACTED].key': Permission denied
gpg: Total number processed: 0
事实证明我当前的用户没有这些密钥的读取权限
$ ls -la .gnupg/private-keys-v1.d/
total 16
drwx------ 2 seb seb 4096 apr 21 22:34 .
drwx------ 4 seb seb 4096 mei 19 16:31 ..
-rw------- 1 root root [REDACTED].key
现在我通过以下方式进行了更改$ sudo chmod +r .gnupg/private-keys-v1.d/*
并尝试手动添加它们似乎有效。
这似乎效果很好,但我想知道让当前用户可读私钥是否是个好主意。
答案1
这似乎效果很好,但我想知道让当前用户可读私钥是否是个好主意。
是的,这很正常。GnuPG 尚未实现任何类型的系统级隔离密钥存储 - 尽管 gpg-agent 的架构已经非常接近,但它仍然只是在您自己的用户帐户下运行,具有与您所有其他进程相同的权限。
您的其他输出显示密钥归所有root:root
,但这只是因为您使用了sudo gpg --import
或类似的东西。