web-dev-qa-db-ja.com

gpg:エージェントの問題:権限が拒否されました

suでユーザーを切り替えた後にGPGを呼び出すと、gpg: problem with the agent: Permission deniedでGPGが失敗します。

su - user2
gpg --symmetric --passphrase=foo foo.txt

自分のユーザーからコマンドを呼び出しても、失敗しません。回避策はありますか?

スレッド メーリングリストのスレッド について見つけましたが、未回答です。エラーの原因は次のとおりです。

ttyは、su経由で切り替えたユーザーではなく、SSH経由でログインした元のユーザーが所有しています

2
sashoalm

PINループバックの入力モードを使用してみてください:

gpg --decrypt --pinentry-mode=loopback <file>

端末suでGPGを試すと、Linuxシステムで問題を再現できます。

$ gpg --decrypt example.gpg
gpg: AES256 encrypted data
gpg: problem with the agent: Permission denied
gpg: encrypted with 1 passphrase
gpg: decryption failed: No secret key

私のために働く解決策:

$ gpg --decrypt --pinentry-mode=loopback example.gpg
hello world

GPGが最新であることを確認することもできます。

$ gpg --version
gpg (GnuPG) 2.2.4
libgcrypt 1.8.1
...
4