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
。
これは、ピンエントリ(パスフレーズの登録に使用されるユーティリティ)の問題です。 Macにインストールされていますか?そうでない場合は、brew install pinentry-mac
を実行して再試行してください。そうでない場合は、構成を変更する必要があります。詳細については、これに関するコメントを確認してください issue ですが、これで問題ありません。
brew install pinentry-mac
echo "pinentry-program /usr/local/bin/pinentry-mac" >> ~/.gnupg/gpg-agent.conf
killall gpg-agent
多くの人が、公式のGnuPGチームによって保守されていないパッケージであるpinentry-mac
をインストールすることを推奨しています。 私はそれに対してお勧めします。
より安全な代替手段は、 公式ドキュメント で提案されているように~/.profile
に次の行を追加することです(~/.bashrc
に追加しても機能しませんでした)。
GPG_TTY=$(tty)
export GPG_TTY
これらの行が追加されたら、端末を閉じると問題が解決するはずです。
また、brew upgrade gnupg
を使用してgnupgを最新バージョンにアップグレードしてください。