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

git push heroku master

但会出现以下错误:

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

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


当前回答

我面临的问题是在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

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

其他回答

我也有同样的问题,下面的步骤对我有效,

->heroku login

abc@gmail.com密码(&P)

->cd C:\Users\yourusername\.ssh    (OR for cygwin shell ->cd ~/.ssh)

->ssh密钥生成-t rsa-f id_rsa

如果询问任何密码,请不要使用空白,填写密码,但不要忘记。

生成密钥后,您需要添加它,如下所示

$ ssh-add

给heroku

->heroku keys:add "id_rsa.pub"

将目录更改为工作区,然后

->git clone git@heroku.com:stark-dawn-1234.git -o heroku

使用上面设置的密码短语。


实际上,我也删除了下面的文件,但不确定它们是imp,

C: \Users\yourusername.heroku\credientals和C:\Users\yourusername.ssh\known_hosts

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

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

首先,确保隐藏文件在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中完成的。尽管其他国家的程序也应该相同。

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

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

我希望这有帮助。

如果要使用“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

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