回答:
cronジョブのユーザーのみが読み取り可能なファイルにパスフレーズを保存し、--passphrase-file
オプションを使用しgpg
てパスフレーズをそこに読み取るように指示します。
これにより、メモリ内のプロセス情報にパスフレーズが表示されなくなります。セキュリティのレベルは、パスフレーズを保存するファイルへのアクセスレベル(およびキーを含むファイルへのアクセスレベル)によって決定されます。オフラインアクセシビリティ(ディスクをサーバーから引き出す)。このレベルのセキュリティが十分であるかどうかは、物理的およびソフトウェアでファイルを保持しているサーバーへのアクセス制御と、緩和しようとしているシナリオに依存します。
優れたセキュリティ標準が必要な場合は、キー(およびパスフレーズ)をローカルに保存する代わりに、ハードウェアセキュリティモジュールを使用する必要があります。これは、キーがその場で使用されるのを防ぎませんが、他の場所でコピーおよび使用されることを防ぎます。
復号化の自動化は、パスフレーズをどこかに保存するか、パスフレーズを使用しないことを意味します(私の入力中にStephenが提出した他の回答で指摘されている追加オプションを使用しない限り)。どちらも、優れたまたは優れたセキュリティ標準の要件に一致しません。
つまり、要件は安全であると互換性がありません。
あなたは次のようなものに頼ることができます-あなたはルートでなければなりません、パスフレーズが保存されているファイルに本当に紛らわしい名前を付けました、基礎となるファイルシステムなどを暗号化しましたが、それらはすべてレイヤーですそもそもルートになれば、簡単に回避できます。
プロセスリストにパスフレーズが表示されないようにするオプションは--passphrase-file <file-name>
です。
ただし、そもそもパスフレーズを削除するだけでは安全ではありません。
ps
はhidepid
、on を持たない限りetcで表示されますが/proc
、スクリプトを実行するシェル(cronなどから)は非対話型であり、誤って設定されない限り履歴を書き込むべきではありません。