git push heroku master Permission denied(publickey).致命:远程端意外挂断

Tra*_*sen 85 git heroku

请原谅一点挫折,我会尽力控制,因为Heroku使用SO作为他们的客户支持(我认为至少可以说是粗制滥造).

在过去的五个小时里,我一直试图让应用程序发布,但键总是出现问题.我已经阅读了几十篇文章并尝试了提示,以便找出Heroku正在搞砸的愚蠢,完全不透明的过程.

我的用例并不困难:我为我的heroku应用程序创建了一个新的密钥对.我已将该密钥设为我的密钥:

  > heroku keys
  === travis@xxxx.com Keys
  ssh-rsa AAAAB3NzaC...avOqfA7ZBd travis@xxxx.com
Run Code Online (Sandbox Code Playgroud)

我可以登录并"创建"一个应用程序(愚蠢的名称,因为它似乎是创建一个git仓库,而不是任何类型的应用程序)没有问题.但是,每一个*吓坏*时间我试图把我的应用程序,我得到:

  > git push heroku master
  Permission denied (publickey).
  fatal: The remote end hung up unexpectedly
Run Code Online (Sandbox Code Playgroud)

我对WTF没有任何见解正在进行中; 我只是在没有追索权的情况下将头撞在键盘上,而是希望Google的全能之神能够回答它.谷歌没有回答它(好吧,让我把它拿回去,我已经看到了十几种方法来回答这个问题).

对于一个应该很容易的系统,这是一个笑话.我喜欢Heroku的想法,但在拿走五个我们完全没有做的事之后,我想也许这是错误的选择.

jqu*_*ana 149

网络上有各种各样的解决方案.我将尝试将可用选项压缩到一个帖子中.请在每一步后再次尝试连接.

  • 第1步为我做了诀窍!(我确实为我的机器和Github重新创建了我的SSH密钥,然后将它们推送到Heroku.)谢谢! (10认同)
  • 你是说`heroku create`吗?据我所知,`git heroku create`不是一件事. (2认同)

Rob*_*ian 13

您的heroku密钥和github密钥不同步.

  • 确定要使用的密钥(建议创建一个新密钥,即heroku_rsa).

  • 将密钥添加到github.

  • 使用以下命令将相同的密钥添加到heroku:heroku keys:add

  • 我真的,真的,真的*希望我在四小时前读过这个答案.虽然我认为我一路上学到了很多东西,但并非一切都很糟糕. (4认同)

owe*_*tin 2

我遇到了同样的问题,这是我对发生的事情的理论:

我很久以前就注册了 Heroku,给了他们我的 github 公钥。当尝试通常的操作时git push heroku master,它会寻找我的私钥,在 处找到~/.ssh/github_rsa。然后它会默默地失败并显示您发布的消息。

但是,我后来尝试ssh使用该标志来进入另一台服务器-i来指定我的“身份文件”(即私钥),它提示我输入私钥的密码。“解锁”私钥后,该git push heroku master命令即可工作。一些结论:

  • 虽然ssh会提示您输入身份文件的密码,git但不会。
  • 如果您使用其他方法解锁身份文件,例如ssh,它将保持解锁状态以供您git使用。
  • 似乎没有任何关于如何永久删除身份文件上的密码保护的文档,包括使用常见的 unix 命令keytool
  • 上述创建新的公钥/私钥对的解决方案似乎是解决此密码问题的方法,但不知道这就是问题所在。