【问题标题】:Why is my key w/ fingerprint not authorized when I try to push latest changes to Heroku?当我尝试将最新更改推送到 Heroku 时,为什么我的带指纹的密钥未授权?
【发布时间】:2012-02-21 10:08:43
【问题描述】:

在您告诉我参考类似问题之前,我已经尝试了他们的所有答案并在网上进行了自己的研究(尽管我对此并不陌生)。当我尝试使用

将最新更改推送到 Heroku
git remote add heroku git@heroku.com:reviews.git

然后

git push heroku master

我得到以下信息:

Macintosh-84:reviews dk1552$ git push heroku master
!  Your key with fingerprint 2c:4e:7b:df:02:7e:18:c8:2a:16:04:bc:59:5b:88:98
   is not authorized to access reviews.

fatal: The remote end hung up unexpectedly

我已设置密钥、删除密钥、更改密钥等。我所有的文件夹/文件都在 Users/Dennis/...

例如,我正在更新的一个文件位于:Users/Dennis/reviews/app/views/static_pages/about_us.html.haml

我需要做什么来解决这个问题?

【问题讨论】:

  • 您能否将ssh -Tv git@heroku.com 的输出添加到您的问题中? (我不确定它是否真的有帮助,因为它看起来像是 heroku 方面的一个配置问题,但它仍然是一个很好的健全性检查。)
  • 查看错误的一种常见方法是推送到您不拥有的应用程序。 reviews 的所有者也可能已将您删除为协作者。如果你看到heroku info,你看到reviews吗?
  • 当我输入 ssh -Tv git@heroku.com 我得到: Macintosh-84:~ dk1552$ ssh -Tv git@heroku.com OpenSSH_5.2p1, OpenSSL 0.9.8r 8 Feb 2011 debug1:读取配置数据 /etc/ssh_config debug1: Connecting to heroku.com [50.19.85.154] port 22. debug1: Connection created. debug1:身份文件/Users/Dennis/.ssh/身份类型-1 debug1:身份文件/Users/Dennis/.ssh/id_rsa type 1 debug1:身份文件/Users/Dennis/.ssh/id_dsa type -1 debug1:远程协议版本 2.0,远程软件版本 Twisted debug1:不匹配:Twisted debug1:启用协议 2.0 的兼容模式
  • debug1: 本地版本字符串 SSH-2.0-OpenSSH_5.2 debug1: SSH2_MSG_KEXINIT sent debug1: SSH2_MSG_KEXINIT received debug1: kex: server->client aes128-ctr hmac-md5 none debug1: kex: client->服务器 aes128-ctr hmac-md5 none debug1: 发送 SSH2_MSG_KEXDH_INIT debug1: 期待 SSH2_MSG_KEXDH_REPLY debug1: Host 'heroku.com' 是已知的并且匹配 RSA 主机密钥。 debug1:在 /Users/Dennis/.ssh/known_hosts:2 中找到密钥 debug1:ssh_rsa_verify:签名正确 debug1:SSH2_MSG_NEWKEYS 已发送 debug1:期待 SSH2_MSG_NEWKEYS debug1:SSH2_MSG_NEWKEYS 已收到
  • debug1:SSH2_MSG_SERVICE_REQUEST 已发送 debug1:SSH2_MSG_SERVICE_ACCEPT 已收到 debug1:可以继续的身份验证:publickey debug1:下一个身份验证方法:publickey debug1:提供公钥:/Users/Dennis/.ssh/id_rsa debug1:服务器接受密钥:pkalg ssh-rsa blen 277 debug1:身份验证成功(公钥)。 debug1:通道 0:新的 [client-session] debug1:进入交互式会话。通道 0 Macintosh-84 上的 shell 请求失败:~ dk1552$

标签: git heroku key fingerprint


【解决方案1】:

查看https://stackoverflow.com/a/9070685/664833 并运行ssh-add -d 然后再次尝试推送。

也可以试试https://stackoverflow.com/a/8803103/664833(创建一个新的密钥对并将公钥上传到 Heroku)。

【讨论】:

  • 它似乎仍然无法正常工作。我想确认我做对了。所以首先我通过输入 ssh-add -l 列出了所有内容。然后我用 ssh-add -d 将它们全部删除。接下来,我通过键入 ssh-keygen 生成了一个新的公共密钥(然后单击 Enter 以获取所有选项),它说:您的公共密钥已保存在 /Users/Dennis/.ssh/id_rsa.pub 中。然后,当我去添加它时,我所做的就是输入以下内容: heroku keys:add /Users/Dennis/.ssh/id_rsa.pub 最后当我去推送它时,它给了我同样的错误信息。跨度>
  • 尝试使用ssh-add -d 删除密钥,然后推送.. 没有别的,然后报告。
  • Macintosh-84:~ dk1552$ ssh-add -d SSH_AGENT_FAILURE 无法删除身份:/Users/Dennis/.ssh/id_rsa
  • 没关系。它说如果没有要删除的身份。只需再次使用ssh-add -l 再次检查是否有缓存的身份(如果有,则使用ssh-add -d 将其删除)。然后尝试推送,并在这里报告。
  • 试试ssh-add -D(大写d),应该是All identities removed. 然后再推,请反馈。
【解决方案2】:

如果您混合了您的帐户并遇到此问题,一个简单的解决方法是邀请您自己作为您的其他电子邮件下的合作者到 heroku 应用程序。

【讨论】:

  • 您简直太棒了,先生!站立O.
【解决方案3】:

有一次这种情况发生在我身上,我意识到我(拥有多个 Heroku 帐户)使用一个帐户来初始化 Git,另一个帐户来推送更改。显然,这会导致您的公钥出现问题。

如果是这种情况,您可以删除 .git/.gitignore 目录并使用您的首选帐户重新初始化,或者使用您用于启动 Git 的 Heroku 帐户登录并使用该帐户推送更改。

【讨论】:

  • 我遇到了同样的问题,因为我没有意识到我已经安装了 heroku-accounts plugin 并且它试图用于 git push 的帐户(ssh 密钥)是错误的。当我重新安装插件并阅读自述文件时,我能够解决我的问题。
【解决方案4】:

当我在一个目录中创建另一个 Heroku 应用程序时遇到了类似的问题,其中 git 已经有一个到 Heroku 中现有存储库的工作远程。我不断收到有关指纹的完全相同的错误消息。所以我想做的是为我的 Web 应用程序创建另一个环境。

通过发出这些命令,我​​能够再次推送到远程。请注意,keys:add 命令给出了可用公钥的列表。选择与您要使用的帐户相关联的正确密钥(与应用程序相关联)。

  • heroku keys:add - 从列表中选择正确的公钥上传到 Heroku。
  • heroku accounts:set <account name>

现在再次尝试git push heroku master,问题应该就消失了。

我的设置也使用帐户插件。我的机器上配置了几个 Heroku 帐户。

【讨论】:

  • 太棒了!在我成为你的提议之前,我一直在重新生成我的密钥。有用!!非常感谢。
  • 在我的情况下,只需要重新设置heroku帐户,无需重新添加密钥。哇!
猜你喜欢
  • 2012-12-19
  • 2012-08-02
  • 2012-02-05
  • 2012-06-01
  • 1970-01-01
  • 2012-08-03
  • 1970-01-01
  • 2013-03-10
  • 1970-01-01
相关资源
最近更新 更多