2017-10-19 7 views
4

「git push heroku」が突然失敗しました。 (私はNode.jsをインストールしましたが、何とかアップグレードして何とか壊したと思います)突然、英雄に押し込むことができません:「鍵交換方式をネゴシエートできません」

私はすべての類似の記事を読んでいます。どの交換が「提供された」と言わず、すべてが一致するように見えますが、呼び出しが失敗し、私は迷っています。
私はheroku auth:loginに成功しました。

ssh [email protected] -vは私に次のようになります:

OpenSSH_6.2p2, OSSLShim 0.9.8r 8 Dec 2011 
debug1: Reading configuration data /Users/jeff/.ssh/config 
debug1: Reading configuration data /etc/ssh_config 
debug1: /etc/ssh_config line 20: Applying options for * <This line is 'Host *'> 
debug1: Connecting to heroku.com [50.19.85.156] port 22. 
debug1: Connection established. 
debug1: identity file /Users/jeff/.ssh/id_rsa type 1 
debug1: identity file /Users/jeff/.ssh/id_rsa-cert type -1 
debug1: identity file /Users/jeff/.ssh/id_dsa type -1 
debug1: identity file /Users/jeff/.ssh/id_dsa-cert type -1 
debug1: Enabling compatibility mode for protocol 2.0 
debug1: Local version string SSH-2.0-OpenSSH_6.2 
debug1: Remote protocol version 2.0, remote software version endosome 
debug1: no match: endosome 
debug1: SSH2_MSG_KEXINIT sent 
debug1: SSH2_MSG_KEXINIT received 
debug1: kex: server->client aes128-ctr [email protected] none 
debug1: kex: client->server aes128-ctr [email protected] none 
Unable to negotiate a key exchange method 

答えて

8

今朝も同じ問題が発生しました。

以下のようにgit remote urlを変更することで、この問題を回避できます。

から: [email protected]:アプリ-name.git

へ: https://git.heroku.com/app-name.git

あなたは

git remote rm heroku git remote add heroku https://git.heroku.com/app-name.git

+0

これを修正しました。誰もがおそらく正しいでしょう。実際の問題は、私が "[email protected]:"を指し示していたことだと思っていました。だから私の最高の推測は、私はこの構文をサポートしていた古いsshを持っていたし、その後、最新バージョンへの(偶発的な)アップグレードはそれを壊した。とにかくそれは今働きます! – user3407688

0

まず、リモートHerokuのは、実際にSSHのURLである場合は二重にチェック

git remote -v 

その後heroku.comエントリを持つ必要がありC:/Users/jeff/.ssh/configの内容をご確認ください使用されている実際の秘密鍵のパスを取得します。

https URLの場合は、~/_netrcファイル(「Heroku CLI Authentication」)を確認してください。
sshについては、Managing Your SSH Keysを参照してください。heroku keys:addが返されます。

4

下のコマンドを使用することができ、私は同じ問題に遭遇しました今朝。私は時代遅れのsshクライアントを使用していたためでした。私はそれがthis answerを読んだ後に問題だと思った。私のMacではhomebrewを使用しているので、opensshをインストールすることができました。私のためには、それはちょうどだった: brew install openssh

そして、git push heroku masterは成功しました。

私はLinuxに精通していませんが、apt-getのようなパッケージマネージャを使用することができます。

+0

右。それはopensshバージョンでした。 'brew install openssh'でアップデートして問題を修正しました。 –

0

最近、いくつかの古い安全でない鍵交換方式を無効にしました。 Kalimarが言ったように、あなたはおそらく時代遅れのsshクライアントを使用しています。 brew install openssh(またはMac以外のものを使用している場合は同等)が問題を解決しないか、何らかの理由でこれを実行したくない場合は、別の方法として、HTTPS転送を使用するようにURLを変更します。形式は次のとおりです。

関連する問題