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

git push heroku master

但会出现以下错误:

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

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


当前回答

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

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

检查:

https://status.heroku.com/

在极度紧张之前。

其他回答

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

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

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

分享我的经验:

Git(我自己安装的)正在查找名为“id_rsa”的密钥。

所以我尝试将我的密钥重命名为“id_rsa”和“id_rsa.pub”,结果成功了。

顺便说一句,我肯定还有其他方法可以做到这一点,但我还没有深入研究。

听起来您的~/.ssh/authorized_keys文件设置不正确。验证:

它在正确的路径上。文件的权限为0600。~/.ssh的权限为0700。

我只想补充一点,该目录不一定是C:\Users\[用户名]\.ssh。它是您在其中创建公钥的目录。

例如,我在Windows中的主目录已更改为C:\[用户名]。ssh子文件夹中的主目录是创建密钥的最佳位置,也是最可能的位置。您可以使用以下命令检查Windows中的主目录:

    echo %HOMEPATH%

当TortoiseGIT安装在我的机器上时,我遇到了这个问题。将环境变量GIT_SSH从

"c:\Program Files\TortoiseGit\bin\TortoisePlink.exe"

to

"c:\Program Files (x86)\Git\bin\ssh.exe"

使用ssh-keygen和keys完成本教程:add,它起作用了!