我正在尝试STDIN
使用加密数据gpg
。我正在使用以下内容:
echo 'plaintext' | gpg -c -o output.gpg
然而,我看到了以下结果:
gpg: problem with the agent: Inappropriate ioctl for device
gpg: error creating passphrase: Operation cancelled
gpg: symmetric encryption of '[stdin]' failed: Operation cancelled
我该如何仅STDIN
使用gpg
和对称密码进行加密?我使用的是 MacOS 和GPG v2.2.13
。
答案1
许多人建议安装pinentry-mac
,该软件包不由官方 GnuPG 团队维护。我不建议这么做。
~/.profile
更安全的替代方法是按照建议将以下几行附加到官方文档(将它们附加到~/.bashrc
对我来说不起作用)。
GPG_TTY=$(tty)
export GPG_TTY
添加这些行后,关闭终端,问题就解决了。
另外,请确保使用 将 gnupg 升级到最新版本brew upgrade gnupg
。
答案2
这是 pinentry(用于注册密码的实用程序)的问题。它安装在你的 Mac 上了吗?如果没有,请运行brew install pinentry-mac
并重试,否则你需要更改配置。查看此评论问题了解详细信息但这应该没问题:
brew install pinentry-mac
echo "pinentry-program /usr/local/bin/pinentry-mac" >> ~/.gnupg/gpg-agent.conf
killall gpg-agent