web-dev-qa-db-ja.com

不正なSSHキーを使用したTortoiseGit

現在、亀のgitに奇妙な問題があり、それを理解できません。 github上のリポジトリにコミットしようとすると、エラーが発生します

エラー:martindevans/Hermes.gitへのアクセス許可がkey2に拒否されました

Key2は、別のgithubリポジトリにアクセスするために使用するキーですが、リモートURLはkey2を使用するように設定されていません。

enter image description here

私は明らかに間違っていることをしていますか、それとも亀のgitが壊れていますか?

Nb。コメントに応じて。通常のgitを使用すると、次の結果になります。

C:\Users\Martin\Documents\Visual Studio 2010\Projects\Hermes>git Push
Permission denied (publickey).
fatal: The remote end hung up unexpectedly
21
Martin

秘密鍵にはさまざまな形式があります。私のキーペアはputtygenで生成されましたが、Tortoiseはssh.exe(msysgit形式)をssh-clientとして使用するように構成されていました。だから私はそれを(トータスからの)plinkに変更し、うまくいきました。

  • ssh-key.exe => ssh.exe(C:\ msysgit\msysgit\bin)
  • puttygen.exe => TortoisePlink.exe(C:\ Program Files\TortoiseGit\bin)

追記:正しいURLを使用してください! Githubは3つのURL https、git、sshを提供します。


編集:

私はsettingsをここに適応させました:

Settings - TortoiseGit >> Network >> SSH-Client
C:\Program Files\TortoiseGit\bin\TortoisePLink.exe

key-pairを生成しました:

 C:\Program Files\TortoiseGit\bin\puttygen.exe
32
Doomjunky

はぁ! ProcMonが助けになります。これはtortoisegit/tortoiseplinkのバグです。ページェントを介してそのリモートのキーセットを優先する必要がありますが、代わりに、その特定のサーバーのPuTTYによってレジストリに保存されたキーを優先します。 2つの修正。

ここで2つの可能な修正

TortoiseplinkはPuTTYと統合されており、そのサーバーに関連付けられたPuTTYの「セッション」に保存した秘密鍵を読み取っています。少なくともそれは私にとってはそれでした。私はgithubを利用していませんので、誰にとってもこのソリューションの実行可能性はわかりません。

亀のgitと同じように、PuTTYセッションの構成でキーセットを手動で削除し、PuTTYセッションにpagaentを使用することをお勧めします。これにより、tortoisegitはリモコンのキーセットも使用するようになります。

  1. したがって、PuTTYを開いて、サーバーに関連付けられているセッションをロードし、接続/ SSH/Authに移動して、「認証用の秘密鍵ファイル」の値を変更/削除できます。 MOdificationはこのリポジトリを修正する場合がありますが、同じサーバーに異なるキーを使用している場合は、別のリポジトリを台無しにしてしまいます。

  2. レジストリエントリは自分で変更/削除できます。 HKEY_CURRENT_USER\Software\SimonTatham\PuTTY\Sessions\$SERVERNAME$\PublicKeyFile

12
scaryman

git bashでキーを作成します。

ssh-keygen -t rsa

すべてを空白のままにし、パスワードを設定しないでください。 〜/ .ssh/id_rsa.pubの内容を取得して、githubによって提供される公開鍵スペースに貼り付けます。

Ssh経由でgithubに接続してこれをテストします。それが機能する場合は、gitを使用できます。

お役に立てれば。

1
Adam Dymitruk

TortoiseGitを設定してBitbucket(Win10)にアクセスするのと同じ問題がありました。それを解決するには、HKEY_CURRENT_USER\Software\SimonTatham\PuTTY\SshHostKeysのレジストリにある古い保存されたホストキーを削除する必要がありました((デフォルト)キーではなく)。

1
we_do_not_exist