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文字になるようにしますか?
コミッター名は~/.gitconfig
ファイル。そのエントリを実際の名前に変更します(とにかくコミットしたい方法です)。お気に入りのエディターでファイルを編集するか、次のコマンドを発行します。
git config --global user.name "<name>"
まず、IDにgpgキーがあるかどうかを確認する必要があります。
$ gpg --list-key
あなたがこのようなものを表示する必要がある場合:
- パブ2048R/6AB3587A 2013-05-23
- uid xxx(xxxのgpg)
- サブ2048R/64CB327A 2013-05-23
Gpgキーがない場合。あなたが作成する必要があります
$ gpg --gen-key
次に、この出力があります:
gpg(GnuPG)2.0.14; Copyright(C)2009 Free Software Foundation、Inc.これはフリーソフトウェアです。自由に変更して再配布できます。法律で許可されている範囲で、保証はありません。
必要なキーの種類を選択してください:
- (1)RSAおよびRSA(デフォルト)
- (2)DSAとElgamal
- (3)DSA(署名のみ)
- (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)yGnuPG 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.
すでにキーが生成されている場合は、gitユーザーID(名前+メール)とGPGキーのIDの一致を気にすることなく、特定のキーを使用するようにgitに指示できます。 git user.email
GPGキーのいずれかのメールに署名済みのタグを一致させるか、他のユーザーに役立つようにコミットします。
コンピューターでグローバルに使用するキーを設定するには、gitグローバル設定を次のように設定します。
git config --global user.signingkey 6AB3587A
または、user.signingkey
現在使用しているリポジトリのみ:
git config user.signingkey 6AB3587A