2011-07-28 5 views
1

サブキーを持つGPG公開鍵を持っています。リリースプロセスの一環としてMavenの成果物に署名しようとすると、プラグインはメインキーではなくサブキーで署名しています。maven-gpg-pluginにサブキーの代わりにプライマリgpgキーを使用させるにはどうすればいいですか?

ここでプラグインのドキュメントを見てみると: http://maven.apache.org/plugins/maven-gpg-plugin/sign-mojo.html

私が使用するキー制御するように設定することが明らかにプロパティが表示されません。これを制御することは可能ですか?

答えて

1

メーリングリストで質問したところ、私はこの問題の唯一の人ではなかったようです。

私のケースでは、Mac上でGPG Keychain Access UIを使用してキーペアを作成しました。キーを作成するために同じツールを使用した他のユーザーも、Mavenで同じ問題を報告しました。

何らかの理由で、そのUIを使用してキーペアを作成すると、トップレベルのキーだけでなくサブキーも作成されます。コマンドラインツールを使用して新しいキーペアを作成しても、これは発生しません。

私はコマンドラインに行き、サブキーを取り消し、すべてが機能し始めました。

根本的な問題がGPG KeyChain Access UIがキーを作成する方法であるかどうか、またはそれがMavenプラグインがキーを読み取る方法であるかどうかはわかりません。

0

TLDR;サブキーを削除または取り消して制御できます。取り消しをお勧めします。

-

これは、例えば、this sonatype issueで議論されています。また、それだけでUIには影響しません - 私は、Windows 7上でgpg4winを使用して、私の鍵を作成し、コマンドラインキーの生成には、パブやサブキーの両方を生成:

> gpg --gen-key 

> gpg --list-keys 

pub 2048R/xxxxxxxx 2014-12-18 
uid  
sub 2048R/yyyyyyyy 2014-12-18 

コメントは次の2つのオプションを持っていることを言います

もう一度

..

を展開、サブキーを削除し、署名することになるでしょう0

私は鍵を取り消した(それを削除しなかった)とうまくいった。

問題のコメントでは、指示に関してはthe documentが更新されていますが、リンクは機能しなくなりました。一部のページキャッシュを使用することにより、私はこのように読み出されたコンテンツを、救うことができました:

は、サブ署名キーを生成し、 署名のためにそれを使用して、デフォルトで

いくつかのPGPツールサブキーを削除します。主キーを使用する代わりに。これは を使用して成果物に署名し、成果物をセントラルリポジトリ に配備すると問題になります.Nexusはサブキーによって生成された シグニチャから主キーIDを取得できなかったため、公開鍵をインポートできず、 アーティファクトの検証に失敗します。この修正は、サブ署名鍵 を削除して、PGPが署名にプライマリキーを使用するようにすることです。

あなたがサブ署名鍵を持っているアイデアの天候、独自のキーIDと 以下のコマンドを実行して取得するには:

$のgpg --edit-キーA6BAB25C

gpg (GnuPG/MacGPG2) 2.0.17; Copyright (C) 2011 Free Software 
Foundation, Inc. This is free software: you are free to change and 
redistribute it. There is NO WARRANTY, to the extent permitted by law. 

Secret key is available. 

pub 2048R/A6BAB25C created: 2011-08-31 expires: 2012-06-26 usage: SC 
         trust: ultimate  validity: ultimate 
sub 2048R/DD289F64 created: 2011-08-31 expired: 2011-09-30 usage: E 
sub 2048R/8738EC86 created: 2011-12-19 expires: 2012-06-16 usage: S 
[ultimate] (1). Juven Xu (for testing) <[email protected]> 

ように上の例から分かるように、このキーにはIDが DD289F64と8738EC86の2つのサブキーがあります。出力には、作成時間と の有効期限も表示されます。ここで重要なのは使用法です。Eは を表します。暗号化するので、サブキーDD289F64は暗号化専用に使用され、Sは の署名のため、サブ鍵8738EC86は署名専用です。プライマリ のキーにSサブキーがある場合は、それを署名に使用します。それ以外の場合は、 署名するジョブを実行します。そこで、サブ鍵8738EC86を削除します。

まず、そのインデックスは2 であることから、我々は削除するサブキーを選択します(インデックスは0から始まる)、我々は次のコマンドを実行します

のgpg>キーを2

pub 2048R/A6BAB25C created: 2011-08-31 expires: 2012-06-26 usage: SC 
         trust: ultimate  validity: ultimate 
sub 2048R/DD289F64 created: 2011-08-31 expired: 2011-09-30 usage: E 
sub* 2048R/8738EC86 created: 2011-12-19 expires: 2012-06-16 usage: S 
[ultimate] (1). Juven Xu (for testing) <[email protected]> 

出力からわかるように、サブキー8738EC86には*印がついています。 は今、それを削除します。

のgpg> delkey

Do you really want to delete this key? (y/N) y 

pub 2048R/A6BAB25C created: 2011-08-31 expires: 2012-06-26 usage: SC 
         trust: ultimate  validity: ultimate 
sub 2048R/DD289F64 created: 2011-08-31 expired: 2011-09-30 usage: E 
[ultimate] (1). Juven Xu (for testing) <[email protected]> 

ヒントをあなたはすでにあなたの公開鍵を配布した場合のいずれかが、それは、代わりにそれを削除するサブ署名鍵を取り消す する方が良いでしょう方法 プライマリキーを署名キーとして使用できます。削除と取り消しの違いについては、The GNU プライバシーハンドブックを参照してください。 にサブキーを取り消すには、gpg> delkeyの代わりにgpg> revkeyを使用します。

ya! 8738EC86が、それ以上に記載されていないが、最後のステップは、私たちの 変更を保存している:

のgpg>それだ

を救います!これで、ファイルに署名して を確認して変更をテストできます。出力には次のような内容が含まれている必要があります。

gpg:署名済み********************** ***キーID [YOUR- PRIMARY-KEY-ID]

そうで、私のための実用的な手順は

gpg --edit-key PRIMARYKEYID 
key 1 
revkey 
[y] 
[3] 
save 

と記号/解除をやり直しました。

関連する問題