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

git push heroku master

但会出现以下错误:

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

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


当前回答

上面给出的答案确实有效,但我发现我需要做一些额外的步骤才能奏效。

我删除了所有id_rsa*文件,并使用本指南生成了一个新的SSH。然后,我销毁了heroku应用程序。删除了~/.heroku/credentials文件。“heroku create”命令(由于凭据文件已删除,它将提示您输入电子邮件/密码。最后键入“heroku-keys:add”,它将上载默认的~/.ssh/id_rsa.pub文件。它起作用了!好YMMV,但我真的希望这能对我有帮助,因为我一整天都在努力解决这个问题!哈哈

其他回答

我必须这样做:

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

然后它奏效了:

$ git push heroku master  

对于那些在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,它应该可以工作了。

在Windows 7,64位上,上面的解决方案(Onur Turhan的)对我很有效,有如下细微变化

C:\Users\MyName > heroku login

输入电子邮件/密码

C:\Users\MyName >ssh-keygen -t rsa -f id_rsa

这在我的c:\Users\MyName目录(不在.ssh目录中)中生成了两个文件(id_rsa和id_rsa.pub)

heroku keys:add id_rsa.pub
git clone git@heroku.com:some-heiku-xxxx.git -o heroku

我想添加正确的“id_rsa.pub”文件是最重要的。在使用keygen生成公钥后,只需查看创建时的时间戳,即可验证是否添加了正确的密钥。

我面临的问题是在Windows上,每当我运行“heroku keys:add”时,它都会选择github键。以下是我解决问题的步骤

转到“Document and Settings”文件夹下的.ssh目录,删除了git hub密钥运行命令heroku键:添加

上面的命令要求我生成一个新的密钥,下面是输出找不到现有公钥。是否要生成一个?[Yn]是正在生成新的SSH公钥。正在上载SSH公钥C:\Documents and Settings/Admin/.SSH/id_rsa.pub…已完成! “heroku”gem已被弃用,取而代之的是heroku Toolbelt,请从https://toolbelt.heroku.com.

重新运行命令heroku键:添加

上述命令不会给出以下输出找到现有公钥:C:\Documents and Settings/Admin/.ssh/id_rsa.pub正在上载SSH公钥C:\Documents and Settings/Admin/.SSH/id_rsa.pub…已完成

现在使用git push heroku master

对我来说,使用上述步骤解决了问题,并能够在云上部署应用程序。

尝试修复磁盘实用程序(Mac OS X)中的权限。帮助了我