展開プロセスを自動化する必要があり、ツールはリリースアーティファクトに自動的に署名します。キーリングには、サブキーの作成にのみ使用する主キーと2つのサブキーがあります。署名用と暗号化用の1つのサブキー。
現在、すべてのキーに単一のパスフレーズがあります。このパスフレーズを構成ファイルで指定したくないのは、主キーも危険にさらされるからです。
そのため、次のようにして、サブキーに別のパスフレーズを設定すると思いました。
$ gpg --edit-key [subkey-id]
gpg> passwd
gpg> save
しかし、これにより他のキーのパスフレーズも変更されました。
個々のキーに個別のパスフレーズを設定するにはどうすればよいですか?
GnuPGでは、サブキーに個別のパスフレーズを設定することはできません。しかし、この場合は良い実践のアイデアのようにさえ見える回避策があります:
選択したサブキーをエクスポートします(この例では、サブキーのIDは0xDEADBEEF
です)。感嘆符を忘れないでください。GnuPGが実際にサブキー自体で機能し、それが属する主キーでは機能しないことを確認します。
gpg --export-secret-subkeys 0xDEADBEEF! >subkeys.pgp
サブキーには、パブリックプライマリキーとプライベートプライマリ「キースタブ」がアタッチされますが、プライベートプライマリキー自体はアタッチされません。
サブキーを別のGnuPGホームディレクトリにインポートします。この例では、プロジェクトのルートディレクトリにいて、このキーリングのようなもの用のフォルダetc
があることを前提としています。
gpg --homedir ./etc/gnupg --import subkeys.pgp
分離されたサブキーのパスフレーズを変更します。
gpg --homedir ./etc/gnupg --edit-key 0xDEADBEEF
「通常の」キーリングを使用する代わりに、上記のように常に別のGnuPGディレクトリを参照してください。
別の方法として、独自のキーで署名するプロジェクトキーの作成を検討することもできます。これには、他の寄稿者/ユーザーもキーに署名できる(したがって、これが実際にプロジェクトで使用されるキーであることを証明できる)という利点があり、他の誰かがメンテナンスを引き継ぐ場合に備えて、プロジェクトの引き渡しが簡単になる可能性があります。
非常に古くなった(2013)gnupg.orgメールアーカイブは サブキーに個別のパスワードを作成するための厄介な回避策 について説明しています。
これは、制約がキーセット(つまり、マスターサブキーのグループ化)のデータ構造内ではなく、キーセットを作成および変更するためのソフトウェアインターフェイスにのみあることを意味します。
参考文献からの引用:
こんにちは、
マスターキーと、マスターキーとは異なる(たとえば、短い)パスフレーズを持つサブキーを持ついくつかのサブキーを持つことは可能ですか?
おそらく探しているのはオフラインのメインキーです(--export-secret-サブキーを参照)。しかし、答えは「はい」です。 gpg-agentはキーの接続を気にしません。同じパスフレーズを数回求められます(同じキーの異なるコンポーネントの場合)。
しかし、GnuPGはこれを直接サポートしていません。
1)秘密鍵をエクスポートする(--armorのない--export-secret-keys)
2)パスフレーズを変更する
3)再度エクスポートします(もちろん、別のファイルに)
4)両方のファイル(異なるディレクトリ内)でgpgsplitを使用します。結果は次のようになります。
000001-005.secret_key 000002-013.user_id 000003-002.sig 000004-007.secret_subkey 000005-002.sig
5)ここで、2つのグループのコンポーネントを混合します。
6)秘密からキーを削除します:-delete-secret-key
7)新しいものをインポートします:gpg --import different_passphrases.gpg
Hauke Laging
私はこの操作を個人的に確認していません-読んだことを報告するだけです。
この重要なトピックに関するGnuPGドキュメントの仕様と議論の欠如は残念です。