Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
git push heroku主机权限被拒绝(公钥)。致命:远程端意外挂起_Git_Heroku - Fatal编程技术网

git push heroku主机权限被拒绝(公钥)。致命:远程端意外挂起

git push heroku主机权限被拒绝(公钥)。致命:远程端意外挂起,git,heroku,Git,Heroku,请原谅我有点沮丧,因为Heroku使用SO作为他们的客户支持(我认为至少可以说这是低劣的) 在过去的五个小时里,我一直在试图发布一个应用程序,但这些键总是出了问题。我读了几十篇文章,尝试了一个又一个技巧,试图找出在这个愚蠢、完全不透明的过程中,Heroku把事情搞砸了 我的用例并没有那么难:我已经为我的heroku应用程序创建了一个新的密钥对。我已将该钥匙设置为我的钥匙: > heroku keys === travis@xxxx.com Keys ssh-rsa AAAAB3

请原谅我有点沮丧,因为Heroku使用SO作为他们的客户支持(我认为至少可以说这是低劣的)

在过去的五个小时里,我一直在试图发布一个应用程序,但这些键总是出了问题。我读了几十篇文章,尝试了一个又一个技巧,试图找出在这个愚蠢、完全不透明的过程中,Heroku把事情搞砸了

我的用例并没有那么难:我已经为我的heroku应用程序创建了一个新的密钥对。我已将该钥匙设置为我的钥匙:

  > heroku keys
  === travis@xxxx.com Keys
  ssh-rsa AAAAB3NzaC...avOqfA7ZBd travis@xxxx.com
我可以登录并“创建”一个应用程序(愚蠢的名字,因为它似乎在创建一个git repo,而不是任何类型的应用程序)。但每次我尝试推送我的应用程序时,我都会得到:

  > git push heroku master
  Permission denied (publickey).
  fatal: The remote end hung up unexpectedly
我对世跆拳道正在进行的工作一无所知;我只是被卡住了,头撞在键盘上,没有办法,只能希望全能的谷歌之神能够回答。谷歌没有回答这个问题(好吧,让我收回这一点,我已经看到了十几种方法来回答这个问题)


对于一个被认为是简单的系统来说,这是一个笑话。我喜欢Heroku的想法,但在花了五年时间却什么也没做之后,我想这可能是一个错误的选择。

我也遇到了同样的问题,这是我的理论:

我很久以前就注册了Heroku,给了他们我的github公钥。当尝试通常的
git-push-heroku-master
时,它会去查找我的私钥,可以在
~/.ssh/github\u-rsa
找到。然后,它会随着您发布的消息而悄无声息地失败

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

  • 虽然
    ssh
    会提示您输入身份文件的密码,但
    git
    不会
  • 如果您使用另一种方法(如
    ssh
    )解锁标识文件,它将在
    git
    使用时保持解锁状态
  • 似乎没有任何文档说明如何永久删除身份文件上的密码保护,包括使用通用unix命令
    keytool
  • 上述创建新的公钥/私钥对的解决方案似乎是解决此密码问题的一个解决方案,而不知道这就是问题所在


我想这可能有你的解决方案,至少对我来说是这样。网络上有各种各样的解决方案。我将尝试将可用选项浓缩到一篇文章中。请在每一步后再次尝试连接

  • 步骤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:验证和/或修改配置文件

    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
    
  • 步骤5:重新安装Heroku工具包


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

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

  • 将密钥添加到github

  • 使用:
    heroku键:Add


如果其他解决方案都不适合您,请确保您是使用您的帐户登录linux shell,而不是使用root帐户登录linux shell


这样,如果您使用的用户不是ssh密钥的所有者,git将查找错误的密钥以与我进行身份验证,问题似乎是我在后台运行了ssh代理,并且没有向其添加相关的私钥

ps -afe | grep ssh-agent

ssh-add ~/.ssh/id_rsa_heroku_github
我还必须(手动)将公钥添加到github和heroku

heroku keys:add ~/.ssh/id_rsa_heroku_github.pub

我会让你知道,我们为Heroku提供的客户支持是一流的劣质产品。我对SO的回答质量印象深刻。我只是认为,无论技术多么先进,为产品提供客户支持都是一种蹩脚的方式。如果我必须提供个人帐户详细信息,会发生什么情况?不完全是我想与全世界分享的(当我需要修改原始帖子时,我意识到了这一点)。你看到了吗?特别是关于在git上注册公钥的部分?同样的问题,这里得到了解决方案:Remi的链接解决方案对我有效。步骤1为我做到了!(不过,在将它们推送到Heroku之前,我确实为我的机器和Github重新创建了SSH密钥。)谢谢!所有这些对我都不起作用,尽管我非常小心地从顶部安装了两次,而且安装得非常干净。最后,让这一切正常工作的是确保我的GitHub键和Heroku键是相同的。我甚至不明白为什么会有不同,除非我没有注意到Heroku依赖GitHub,但它解决了这个问题。可以在GitHub上的帐户设置中更改密钥。我认为您应该将此添加到您的答案中。我认为IdentityFile行应该是您的私有ssh密钥。你的意思是“heroku创建”<据我所知,代码>git heroku create不是一件事。哇。关于这次经历,我想不出什么好说的。我遵循了许多方法,包括卸载/重新安装git、github和用msysgit替换putty。步骤1-3最终完成了,但更改需要在github ssh_配置中进行。在几次无任何问题地删除和重置我的github键之后,heroku的过程真的很令人沮丧。我真的真的真的真的真的希望我在四个小时前读过这个答案。虽然我认为我在这一过程中学到了很多,但也不全是坏事。我有两个不同的Heroku帐户(一个使用我的工作电子邮件,用于工作中的项目,另一个使用我的个人电子邮件,用于
heroku keys:add ~/.ssh/id_rsa_heroku_github.pub