GPGを使用してRPMを連続ビルドの一部として署名します - パスフレーズのプロンプトを回避するにはどうすればよいですか?

StackOverflow https://stackoverflow.com/questions/3908007

質問

Cronによってトリガーされたシェルスクリプトを介してRPMを生成する継続的な統合ビルドシステムがあります。 GPGでRPMに署名したいのですが、GPGは、Cronのユーザーコンソールがないため、Consoleでパスフレーズに手動で入力するユーザーを主に主張しています。

私はGPG-Agentについて読みました。これにより、現在のログインセッションのためにパスフレーズを1回入力できますが、Cronにはログインセッションがありません。私が希望するのは、GPG-Agentを設定して、ブートタイムでパスフレーズを一度受け入れ、必要に応じてCronセッションに手渡すことです。これが可能かどうかはわかりませんが、GPG-Agentのドキュメントはかなり最小限です。

代替案は、GPGがそれを要求するときにPassPhraseを入力することを期待することですが、パスフレーズをビルドスクリプトに含める必要があるため、これは明らかに大きなセキュリティホールです。

役に立ちましたか?

解決

起動時にGPG-Agentを起動し、GPG_AGENT_INFO環境変数を保存する必要があります。その後、スクリプトの環境でセットアップでき、期待どおりに機能するはずです。さらに、GPG_AGENT_INFOのソケットの権限を確認してください。スクリプトが読み取られるようにしてください。

他のヒント

RPMを生成するために使用するビルドツールを使用すると、署名する機能があります。たとえば、Gradleには署名を行うプラグインがあります。キーリングファイルのID、PassPhrase、および場所を備えたプロパティファイルを作成する必要があります。残りは行われます。

見る: https://docs.gradle.org/current/userguide/singe_plugin.html

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top