2016-04-23 9 views
25

Gitを使用してコミットしようとすると、このエラーが発生します。私はこの Generating a GPG key for git taggingを発見し、続いているgitコミットに失敗しました:秘密鍵が利用できません。

上記のよう

gpg: skipped "name <[email protected]>": secret key not available 
gpg: signing failed: secret key not available 
error: gpg failed to sign the data 
fatal: failed to write commit object 

私は以下のように新しいキーを生成しているが、それはまだ同じエラー

gpg --list-keys 
~/.gnupg/pubring.gpg 
-------------------------------- 
pub 2048R/35F5FFB2 2016-04-23 
uid     name (New key) <[email protected]> 
sub 2048R/112A8C2D 2016-04-23 

秘密鍵を与えると同じですステップはまだ動作しません、任意のアイデアですか?

+0

を有効に私の知る限り、名前はあまりにも同じである必要があり –

答えて

37

としてそれを設定する必要がWindows上

git config user.signingkey 35F5FFB2 

また、すべてのリポジトリで同じキーを使用する場合は、グローバルです。

git config --global user.signingkey 35F5FFB2 

出典:https://git-scm.com/book/es/v2/Git-Tools-Signing-Your-Work

+0

はVEY多くのレオナルドをありがとうございます!できます!!申し訳ありませんが、質問が愚かだった場合、私はそれを解決する方法を知らなかった。 –

+0

優秀!ユーザーの署名鍵を指定すると、1つの鍵に複数の電子メールアドレスがあり、git電子メールと鍵の最初のアドレスが一致しなくなります。 – user2943160

+1

秘密鍵を持つ.gitconfigをパブリックリポジトリに保存するのは安全ですか? – melihovv

4

変数GNUPGHOMEを設定する必要があります。 それがなければ、GnuPGはあなたの鍵を見つけることができません。

# On unix add it to your path 

# On windows it will usually be under: 
<drive>:\Users\<username>\AppData\Roaming\gnupg 

単純に、パスに追加します。あなたがコントロールパネルを開いて、あなたがそれを使用する前に、秘密鍵を設定する必要が

System Variable 
    Name: GNUPGHOME 
    Path: <drive>:\Users\<username>\AppData\Roaming\gnupg 
-3

はたぶん、あなたはあなたが権利を持っている独自のリポジトリのクローンを作成する必要があります。私は別の人のリポジトリを複製したときにこの問題を抱えました。あなたがgpg2.exeの完全なパスを検索したい場合は

git config --global gpg.program "C:/Program Files (x86)/GNU/GnuPG/gpg2.exe" 

を追加してどのような私のために働いた

17

where gpg2.exe 
4

I'likeをすべてのこれらの答えを完了するために、私はしました原因これには多くの問題があります。

これらの例では--globalフラグが使用されていますが、これらの項目にローカルで追加する場合は削除できます。

のgitで設定した秘密鍵

git config --global user.signingkey 35F5FFB2 

設定魔女のgpgプログラムTUは、いくつかのシステム(exempleためのUbuntuは)同時にgpggpg2を持つことができますgitの中(別売)

を使用しています。 Inappropriate ioctl for deviceまたはgpg: échec de la signature : Ioctl() inapproprié pour un périphérique:あなたは、あなたが次のエラーを持っているSSH環境でこれらのコマンドを使用する場合、それが可能であるgpg2

git config --global gpg.program gpg2 

輸出GPG_TTY(オプション)

を使用します指定する必要があります。これは、を介して固定することができます。

export GPG_TTY=$(tty) 

オート歌っGPG(オプション)

git config --global commit.gpgsign true 
+0

もう使用したくない場合、どのように無効にしますか? –

+0

これらの 'git config'コマンドに' --unset'フラグを付けて無効にすることができます – alphayax

+0

私は実際にこのgit config --global commit.gpgsign trueを使用しましたが、falseと言いました。 –

関連する問題