web-dev-qa-db-ja.com

gitは正しいsshを見つけることができません

Gitを使用して接続しようとすると、このエラーが表示されます

$ git clone [email protected]:MyCompany/eagle.git --verbose                                         
Cloning into 'eagle'...                                                                        
FATAL ERROR: Couldn't agree a key exchange algorithm (available: [email protected],ecdh-sh
a2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521)                                                   
fatal: Could not read from remote repository.                                                        

Please make sure you have the correct access rights                                                  
and the repository exists.

すべてのキーなどを設定しましたが、ssh -v [email protected]接続が成功したため、接続は正常に機能します。

何が問題で、何を修正する必要があるのか​​を理解するにはどうすればよいですか?

おかげで、

10
Bill Lumbert

ssh -T [email protected]で次のような場合:

Hi <name>! You've successfully authenticated, but GitHub
does not provide Shell access.

メッセージは、sshセットアップが機能していることを意味します。あなたが得る場合:

FATAL ERROR: Couldn't agree a key exchange algorithm ...

これは、sshの設定が機能していないことを意味します。明らかにここに矛盾があり、最も可能性の高い原因は、2つの異なるsshコマンドがインストールされていることです。1つは使用しており、動作しますが、もう1つはGitが使用しています。

この回答 から Git with SSH on Windows には多くの賛成票があります。私はWindowsを避けているので、これが役立つかどうかはわかりません。 (あなたがそれを言及していないので、あなたがWindowsを使っているかどうかさえ知りません。)

Gitバージョン2.3.0がGIT_SSH_COMMAND を追加し、 Gitバージョン2.10.0がcore.sshCommandを追加してGIT_SSH_COMMAND の値を設定することに注意してください。 。それ以来、 Gitバージョン2.13.0は、さまざまなオプション文字を必要とするsshのバリエーションに関連する問題に対処するためのいくつかの新しいトリックを学びました。 すべてのケースで、どのssh Gitが実行されているかを把握し、実際に動作するものを実行してください。すべてのオプション変数とその機能の説明については、 トップレベルのGitドキュメント を参照してください。ここのリンクは、ご使用のGitバージョンと一致しない可能性があるWebページに移動するため、Gitが非常に古い場合は、git --help gitを実行してそのバージョンを読み取ることを検討してください。

5
torek

私にとって、これは次の理由で起こっていました:

  1. PuTTYを使用するようにGitを構成しました(つまり、GIT_SSH=C:\Program Files\PuTTY\plink.exe
  2. 古いバージョンのPuTTY(0.63など)を実行していた
  3. GitHubは最近 弱い暗号化標準を削除 しました。

PuTTY 0.63と downloaded をアンインストールし、PuTTYの最新バージョン(現時点では0.70)をインストールして、問題を解決しました。

11
mfisherca

問題はGIT_SSHにありました。この変数は以前にPuTTYによって設定されています。この環境変数を削除し、問題は解決しました

4
Bill Lumbert

これはGitHub 弱い暗号の削除 に関係している可能性があります。これは2018年2月22日頃に起こりました。

1

私はSourceTree、PuTTY、open-sshの順に使用しています。実際に混乱し、_GIT_SSH_ env変数値をチェックするときにSourceTreeと共にインストールされたPuTTYを使用していました。 open-sshを使用するには、この環境変数を削除する必要がありました。 (PuTTYを使用しないので)

初心者の場合は、このスニペットを使用して、open-sshでgithubに「ログイン」します。eval $(ssh-agent -s) && ssh-add ~/.ssh/mySHHKey

編集:私は昨日正常に接続しましたが、今は動作しなくなったことを気にしないでください...その間、PuTTYでページェントを使用してください。

0
Ambroise Rabier