次のgpgコマンドを使用してループ内の多くのファイルを暗号化する「USER A」のcronからスクリプトを実行するcronジョブがあります。
gpg --batch --cipher-algo AES256 --passphrase "PASSWORDISHERE" -c FILENAME
「ユーザーA」は高い権限を持ち、SSHを介して接続できず、必要な場合にのみ一般ユーザーによってログインされます。したがって、SSHを介して自分(Bob)でログインすると、暗号化されたファイルを復号化できます。ただし、ユーザーAに「su -」を切り替えて復号化しようとすると、次のエラーが発生します。
gpg: AES256 encrypted data
can't connect to `/home/USERA/.gnupg/S.gpg-agent': No such file or directory
gpg-agent[27859]: command get_passphrase failed: Operation cancelled
gpg: cancelled by user
gpg: encrypted with 1 passphrase
gpg: decryption failed: No secret key
私は多くの研究を行い、ttyとpinentryに関連する多くのことを見つけました。私が見つけた唯一の解決策はを使用することですchmod o+rw $(tty)
。しかし、それは私にとって良い長期的な解決策ではなく、とにかくこのアプローチを使用したくないということは言うまでもありません。誰でも良い考えがありますか?