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

git push heroku master

但会出现以下错误:

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

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


当前回答

我重新安装了heroku工具带,它工作了。

其他回答

这是我的解决方案:

ssh-add ~/.ssh/my_heroku_key_rsa

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

在尝试了所有这些想法之后,我仍然有问题。这是我的问题:

我的远程heroku存储库被吓坏了。我将其刷新如下:

git remote -v

然后删除错误的heroku:

git remote rm heroku

然后添加新的

git remote add heroku git@heroku.com:sitename.git

您可以从应用程序的Heroku设置页面获取站点名称。祝你好运

除了处理SSH密钥,您还可以尝试Heroku的新测试版HTTP Git支持。它只使用您的API令牌并在端口443上运行,因此无需使用SSH密钥或端口22。

要使用HTTP Git,首先确保Toolbelt已更新,并且您的凭据是最新的:

$ heroku update
$ heroku login

(这一点很重要,因为Heroku HTTP Git的认证方式与Toolbelt的其他方式略有不同)

在测试期间,通过将--httpgit标志传递给相关的heroku应用程序:create、heroku git:clone和heroku git:remote命令,可以获得HTTP。要创建新的应用程序并使用HTTP Git远程配置它,请运行以下命令:

$ heroku apps:create --http-git

要将现有应用程序从SSH更改为HTTP Git,只需从计算机上的应用程序目录运行以下命令:

$ heroku git:remote --http-git
Git remote heroku updated

有关如何为Heroku设置HTTP Git的详细信息,请查看开发中心文档。

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

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