私はroot(sudoを使用)で実行し、gpgを使用する必要があるシェルスクリプトを開発しています。暗号化は正常に動作しますが、何らかの理由で復号化で私の鍵を使用することを拒否します。
特定のコマンド:
sudo gpg --homedir '/home/username/.gnupg' -d file.gpg
失敗する:
gpg: WARNING: unsafe ownership on homedir '/home/username/.gnupg'
gpg: encrypted with 2048-bit RSA key, ID XXX, created YYYY-MM-DD
"John Doe <[email protected]>"
gpg: public key decryption failed: Permission denied
gpg: decryption failed: No secret key
ただし、sudo gpg --homedir '/home/username/.gnupg' --list-secret-keys
キーが正しくリストされており、通常のユーザーとしてgpgを使用してファイルを復号化できるため(Sudoを除く)、キーやファイルに問題はありません。
Manjaroでgpg 2.2.19を実行しています。
答え1
pinentry、つまりキーを入力するためのパスワードに関連する権限の問題であることがわかりました。 2つの解決策/解決方法があります。
--pinentry-mode loopback
:権限の問題を迂回して端末にpinentryが発生します。chmod o+rw $(tty)
:pinentryが正しく機能するようにtty権限を変更します。最初の解決策は権限を操作する必要がないため、おそらくより望ましいでしょう(少なくとも理論的にはセキュリティ上の問題が発生する可能性があります)。
答え2
走る
screen
その後、キーを削除してください。