git push heroku master权限被拒绝(publickey)。 致命的:远端意外挂断
请原谅一些挫折,我会尽量保持检查,因为Heroku使用SO作为他们的客户支持(我认为这至less可以说是次充好)。
在过去的五个小时里,我一直试图让应用程序发布,但总是出现一些错误的关键。 我已经阅读了数十篇文章,并在小费后尝试了小费,试图找出Heroku在愚蠢,完全不透明的过程中所处的位置。
我的用例并不难:我为我的heroku应用程序创build了一个新的密钥对。 我已经设定了这个关键是我的关键:
> heroku keys === travis@xxxx.com Keys ssh-rsa AAAAB3NzaC...avOqfA7ZBd travis@xxxx.com 我可以login和“创build”一个应用程序(愚蠢的名字,因为它似乎是创build一个GIT回购,而不是任何forms的应用程序)没有问题。 但每一次 * freaking * 时间我试图推动我的应用程序,我得到:
  > git push heroku master Permission denied (publickey). fatal: The remote end hung up unexpectedly 
我对WTF没有深入的了解; 我只是用一种无法追求的方式将我的头撞在一个键盘上,但希望Google的全能上帝能够回答它。 而谷歌没有回答(好吧,让我拿回来,我已经看到了十几种方法来回答这个问题)。
对于一个应该很容易的系统来说,这是一个笑话。 我喜欢Heroku的想法,但是在拿了五个我们完全没有做的事情之后,我想也许这是错误的select。
networking上有各种各样的解决scheme。 我会尽量把可用的选项压缩到一个文章中。 请在每一步之后重新尝试连接。
- 
步骤1:尝试将公钥添加到Heroku heroku keys:add ~/.ssh/id_rsa.pub // or just heroku keys:add and it will prompt you to pick one of your keys
- 
第2步:生成一组新的SSH密钥,然后再尝试第一步 
- 
步骤3:validation和/或修改您的configuration文件 vim ~/.ssh/config Host heroku.com Hostname heroku.com Port 22 IdentitiesOnly yes IdentityFile ~/.ssh/id_rsa <--- Should be your public SSH key TCPKeepAlive yes User jsmith@gmail.com
- 
第4步:从git中删除heroku remote,重新创build连接,通过heroku添加远程创build将只是新的存储库的一个选项。 一定要删除您最初尝试创build的旧回购 $ git remote rm heroku $ heroku create
- 
第五步:重新安装Heroku Toolkit 
您的heroku密钥和github密钥不同步。
- 
确定你想使用哪个键(build议创build一个新的,即heroku_rsa)。 
- 
将密钥添加到github。 
- 
将相同的密钥添加到heroku中使用: heroku keys:add
我遇到了同样的问题,这是我的理论到底是怎么回事:
 我很久以前注册Heroku,给他们我的github公钥。 当尝试通常的git push heroku master ,它会去寻找我的私钥,在~/.ssh/github_rsa 。 然后它悄悄地失败,并发布你的消息。 
 不过,我后来尝试使用-i标志ssh到另一个服务器来指定我的“身份文件”(即私钥),它提示我input我的私钥的密码。 在“解锁”私钥的情况下, git push heroku master命令起作用。 一些结论: 
-  虽然ssh会提示你input身份文件的密码,但git不会。
-  如果你用另一种方法(如ssh解锁身份文件,它将保持解锁为您的git使用。
-  似乎没有关于如何永久删除身份文件上的密码保护的任何文档,包括常见的unix命令keytool。
- 以上创build一个新的公钥/私钥对的解决scheme似乎是解决此密码问题的一种解决方法,而不知道这是问题所在。
部署heroku代码时,权限被拒绝(publickey)。 致命的:远端意外挂断
我想这可能有你的解决scheme,至less对我来说
对我来说,似乎问题是我的后台运行ssh-agent,并没有添加相关的私钥。
 ps -afe | grep ssh-agent ssh-add ~/.ssh/id_rsa_heroku_github 
我还必须将公钥添加到github(手动)和heroku
 heroku keys:add ~/.ssh/id_rsa_heroku_github.pub 
如果没有其他解决scheme适用于您,请确保您使用您的帐户loginlinux shell, 而不使用root帐户。
这样,如果你正在用不是你的ssh密钥的所有者的用户运行,git会查找错误的密钥来validation