web-dev-qa-db-ja.com

Gitタグ付けのためのGPGキーの生成

Gitコマンドラインを使用してGitHubで署名済みタグを作成しようとしています。 (サンプル)ユーザー名Full Name (skytreader) <[email protected]>を使用してGPGキーを生成しました。それを行った後、 signed tag を作成しようとします。ただし、次のエラーが発生します。

gpg: skipped "full <[email protected]>": secret key not available
gpg: signing failed: secret key not available
error: gpg failed to sign the data
error: unable to sign the tag

指定されたユーザー名で別のキーを作成する必要があるだけです。しかし、「full」という名前を入力すると、gpgは私の名前が少なくとも5文字である必要があると不平を言います。

Gitでこのキーを使用するにはどうすればよいですか?

GPGでタグに署名するためにgitが使用するユーザー名を変更して、実際の名前が少なくとも5文字になるようにしますか?

39
skytreader

コミッター名は~/.gitconfigファイル。そのエントリを実際の名前に変更します(とにかくコミットしたい方法です)。お気に入りのエディターでファイルを編集するか、次のコマンドを発行します。

git config --global user.name "<name>"
16
Christopher

まず、IDにgpgキーがあるかどうかを確認する必要があります。

$ gpg --list-key

あなたがこのようなものを表示する必要がある場合:

  1. パブ2048R/6AB3587A 2013-05-23
  2. uid xxx(xxxのgpg)
  3. サブ2048R/64CB327A 2013-05-23

Gpgキーがない場合。あなたが作成する必要があります

$ gpg --gen-key

次に、この出力があります:

gpg(GnuPG)2.0.14; Copyright(C)2009 Free Software Foundation、Inc.これはフリーソフトウェアです。自由に変更して再配布できます。法律で許可されている範囲で、保証はありません。

必要なキーの種類を選択してください:

  1. (1)RSAおよびRSA(デフォルト)
  2. (2)DSAとElgamal
  3. (3)DSA(署名のみ)
  4. (4)RSA(署名のみ)

あなたの選択? RSAキーの長さは1024〜4096ビットです。どのキーサイズが必要ですか? (2048)
リクエストされたキーサイズは2048ビットです
キーの有効期間を指定してください。

         0 = key does not expire
      <n>  = key expires in n days
      <n>w = key expires in n weeks
      <n>m = key expires in n months
      <n>y = key expires in n years

キーは有効ですか? (0)
キーの有効期限はありません
これは正しいです? (y/N)y

GnuPG needs to construct a user ID to identify your key.

Real name: xxx
Email address: [email protected]
Comment: gpg for xxx

You selected this USER-ID:
    "xxx(gpg for xxx) <[email protected]>"

Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? O
You need a Passphrase to protect your secret key.

can't connect to `/xxx/.gnupg/S.gpg-agent': No such file or directory
We need to generate a lot of random bytes. It is a good idea to perform
some other action (type on the keyboard, move the mouse, utilize the
disks) during the prime generation; this gives the random number
generator a better chance to gain enough entropy.
39
mmcorrelo

すでにキーが生成されている場合は、gitユーザーID(名前+メール)とGPGキーのIDの一致を気にすることなく、特定のキーを使用するようにgitに指示できます。 git user.email GPGキーのいずれかのメールに署名済みのタグを一致させるか、他のユーザーに役立つようにコミットします。

コンピューターでグローバルに使用するキーを設定するには、gitグローバル設定を次のように設定します。

git config --global user.signingkey 6AB3587A

または、user.signingkey現在使用しているリポジトリのみ:

git config user.signingkey 6AB3587A
8
user2943160