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

git push heroku master

但会出现以下错误:

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

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


当前回答

如果要使用“sudo”,例如:

sudo git clone git@heroku.com......... -o heroku

您还应该为root用户生成ssh密钥。

sudo su
cd /root/.ssh  
ssh-keygen -t rsa
....
heroku keys:add id_rsa.pub

它会奏效的。

如果不使用root用户,请在用户目录中生成ssh密钥。

cd /home/user/.ssh

对不起,如果我的句子搞砸了。。。

其他回答

这是对我有用的。heroku网站没有添加到您已知的主机中。转到其他窗口-显示查看git git存储库。从那里克隆存储库。克隆后,删除刚刚创建的存储库,然后从文件菜单中导入。这样做是因为当您克隆存储库时,它不会将其添加到资源管理器视图中。现在您应该拥有git存储库和资源管理器视图。

如果您是windows用户,这里的其他解决方案可能无法解决您的问题。

我使用的是Windows 7 64位+Git-1.7.7.1-review20111027,解决方案是将我的密钥从C:\users\user\.ssh复制到C:\Program Files(x86)\Git\.ssh。这是Git客户端在推送到heroku时查找密钥的地方。

我希望这有帮助。

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

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

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

我也遇到了同样的问题;以下步骤将有助于:

首先,登录:heroku登录清除所有键:heroku键:清除删除.ssh/文件夹中本地文件夹中的所有文件(所有.pub文件和know_host)再次登录:heroku login-u将无需按键提示,因此请按照屏幕上的说明进行操作。

只有一个命令有效:

heroku keys:add

如果它不存在的话,它会成为一个。