“git push heroku”突然失败了。 (我安装了Node.js,我认为它可能升级了一些东西并以某种方式破坏了它。)
我已经阅读了所有相似的帖子;它没有告诉我哪个交易所“提供”,而且一切看起来都匹配,但是通话失败了,我不知所措。
我做了heroku auth:登录成功。
ssh git@heroku.com -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 hmac-sha2-256-etm@openssh.com none
debug1: kex: client->server aes128-ctr hmac-sha2-256-etm@openssh.com none
Unable to negotiate a key exchange method
答案 0 :(得分:11)
今天早上我遇到了同样的问题。
我可以通过更改git remote url来避免这个问题。
自: git@heroku.com:APP-name.git
于: https://git.heroku.com/app-name.git
你可以使用下面的命令
git remote rm heroku
git remote add heroku https://git.heroku.com/app-name.git
答案 1 :(得分:4)
今天早上我遇到了同样的问题。这是因为我使用的是过时的ssh客户端。我怀疑这是在阅读this answer之后的问题。在我的Mac上我使用homebrew所以我能够安装openssh。对我来说只是:
brew install openssh
然后git push heroku master
成功。
我对Linux并不熟悉,但我怀疑你可以使用像apt-get这样的包管理器。
答案 2 :(得分:1)
他们最近禁用了一些旧的不安全密钥交换方法。正如Kalimar所说,你可能正在使用一个过时的ssh客户端。如果brew install openssh
(或等同于你在Mac以外的其他东西)没有解决它,或者你不想出于任何原因这样做,另一种方法是更改URL以使用HTTPS传输。格式为:
https://git.heroku.com/YOUR-APP-NAME.git
答案 3 :(得分:0)
首先,仔细检查远程heroku是否确实是一个ssh URL
git remote -v
然后检查应该有C:/Users/jeff/.ssh/config
条目的heroku.com
的内容,以获取使用的实际私钥路径。
如果是https网址,请检查您的~/_netrc
文件,例如&#34; Heroku CLI Authentication&#34;。
但是对于ssh,请参阅Managing Your SSH Keys以及heroku keys:add
返回的内容。