su
でユーザーを切り替えた後にGPGを呼び出すと、gpg: problem with the agent: Permission denied
でGPGが失敗します。
su - user2
gpg --symmetric --passphrase=foo foo.txt
自分のユーザーからコマンドを呼び出しても、失敗しません。回避策はありますか?
スレッド メーリングリストのスレッド について見つけましたが、未回答です。エラーの原因は次のとおりです。
ttyは、su経由で切り替えたユーザーではなく、SSH経由でログインした元のユーザーが所有しています
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
...