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

git push heroku master

但会出现以下错误:

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

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


当前回答

我必须这样做:

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

然后它奏效了:

$ git push heroku master  

其他回答

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

我也有这个问题。我正在使用Mac OSX。我解决的方法是以管理员身份登录

获取权限暗语

要遵循的顺序

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

当执行第二条语句时,它会要求输入,只需按Enter(回车)三次,就会添加一个键。

在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生成公钥后,只需查看创建时的时间戳,即可验证是否添加了正确的密钥。

首先,确保隐藏文件在Mac中可见。如果没有:

打开终端并输入默认值,写入com.apple.FinderAppleShowAllFiles真killall查找器

下一步:

转到Users/user_name/.ssh/删除了所有文件。在ssh keygen-t dsa中打开终端类型然后heroku键:add~/.ssh/id_dsa.pub

注意:我是在Mac OSX 10.7.2 Lion中完成的。尽管其他国家的程序也应该相同。