我正在尝试使用以下命令行将代码部署到heroku:

git push heroku master

但会出现以下错误:

Permission denied (publickey).
fatal: The remote end hung up unexpectedly

我已经上传了我的公共SSH密钥,但仍然会出现此错误。


当前回答

对于那些在Windows7上尝试了上述所有方法但仍然没有成功的人,我做了以下工作:-从Git目录C:\Program Files(x86)\Git\中打开GitBash.exe(不要打开命令提示符,这不起作用)。-如上所述添加以下内容,但必须删除#

Host heroku.com
Hostname heroku.com 
Port 22 
IdentitiesOnly yes 
IdentityFile ~/.ssh/ssh-dss
TCPKeepAlive yes 
User joe@workstation.local

现在运行gitpushherokumaster,它应该可以工作了。

其他回答

推送时使用

git push heroku production:master 

使用主目录~/.ssh/id_rsa下的公钥

要解决此问题

您应该以其他用户身份登录,可能是root用户

sudo su 

然后通过发出以下命令重新开始

heroku keys:clear //removes existing keys
ssh-keygen -t rsa //generates a new key in ~/.ssh folder (set a password)
heroku keys:add   //uploads the new key, ~/.ssh/id_rsa is uploaded                      
git push heroku production:master

我花了三天的时间尝试各种可能的组合,试图让它发挥作用——我最终尝试了制作DSA密钥,结果成功了。

如果不适合您,请尝试DSA而不是RSA。

(我使用的是Ubuntu 11.10、ruby 1.8.7、heroku 2.15.1)

这是我的解决方案:

ssh-add ~/.ssh/my_heroku_key_rsa

我必须这样做:

$ ssh-keygen -t rsa  
$ heroku keys:add  

然后它奏效了:

$ git push heroku master  

推对我很有效,然后突然停了下来。

如果heroku api正在经历宕机,那么当您尝试推送时会出现此错误。

检查:

https://status.heroku.com/

在极度紧张之前。