gpg: WARNING: unsafe permissions on configuration file `/home/david/.gnupg/gpg.conf'
gpg: WARNING: unsafe enclosing directory permissions on configuration file `/home/david/.gnupg/gpg.conf'
gpg: external program calls are disabled due to unsafe options file permissions
gpg: keyserver communications error: general error
gpg: keyserver receive failed: general error
这是什么意思以及如何解决?
答案1
gpg:警告:配置文件
/home/david/.gnupg/gpg.conf' gpg: WARNING: unsafe enclosing directory permissions on configuration file
/home/david/.gnupg/gpg.conf' 的权限不安全 gpg:由于选项文件权限不安全,外部程序调用被禁用
这意味着你~/.gnupg/gpg.conf
拥有你正在运行的用户的意外权限,例如对“其他用户”、其他用户或可执行位的写入权限。此文件应始终出于安全原因仅可由用户读取和写入,并且没有别人了:
$ ls -l ~/.gnupg/gpg.conf
-rw------- 1 braiam braiam 7890 Jul 8 18:51 .gnupg/gpg.conf
您的用户或权限可能不同。使用 检查它们ls -l ~/.gnupg/gpg.conf
。修复此问题非常简单:
chown $(whoami):$(whoami) ~/.gnupg/gpg.conf ## if this fails read at the bottom
chmod 600 ~/.gnupg/gpg.conf
如果某些命令失败,或者您按照这些说明操作后仍然收到提到的错误消息,则应该删除该~/.gnupg
目录,因为它不再受信任。
rm -r ~/.gnupg/gpg.conf ## If this fails, use sudo
然后,您可以尝试使用要gpg
运行脚本的同一用户来运行命令,这样您的用户就可以创建~/.gnupg
具有适当权限的目录。
答案2
您可能.gnupg
从另一台机器迁移了文件夹,或者以其他方式篡改了文件权限。
出于安全原因,GnuPG 强制文件夹和某些文件的私人所有权。
这两行修复了权限问题。第一行确保~/.gnupg
文件夹(以及其中的所有内容)确实属于您。要超越所有权,需要 root 权限,因此需要sudo
。第二行确保除了您之外没有人可以读取其内容(删除组和其他用户的读取、写入和执行权限)。您的用户名会自动插入,因此您可以将这些行直接复制粘贴到您的终端:
sudo chown -R ${USER}:${USER} ~/.gnupg
chmod -R go-rwx ~/.gnupg
答案3
我刚刚遇到了同样的问题。原来我是gpg
使用 运行命令的sudo
。当我再次尝试不使用 时sudo
,它运行正常,没有显示任何错误。所以,你的情况可能也是这样。