【问题标题】:git push heroku master Permission denied (publickey)git push heroku master 权限被拒绝(公钥)
【发布时间】:2013-01-20 18:03:37
【问题描述】:

编辑#3

在顶部更新它,因为它解决了我的问题,并为我提供了一个我不知道的很好的故障排除步骤(也可以为您节省一些时间)

尝试获取ssh -vvv git@heroku.com 的输出。对我来说,当我的公钥在 /c/Users/NumberOverZero/.ssh 中时,ssh 正在尝试 /c/Program Files (x86)/Emacs/.ssh 中的密钥

删除 Emacs ssh 文件夹(它是空的)解决了我的问题,因为 ssh 会检查我的用户 .ssh 文件夹。


我在尝试git push heroku master 时收到Permission denied (publickey)

与下面的帖子有一些不同之处:

  • 我有 ssh 为 github 工作
  • 昨晚我成功推送到heroku
  • 自那次推送以来,我对一个 js 文件进行了单行更改,然后提交并推送。没有其他变化。

我能找到的最接近的是这篇文章:

git clone heroku ssh permission denied

我已经查看了相关问题(有很多):

git push heroku master Permission denied (publickey). fatal: The remote end hung up unexpectedly
git push heroku master permission denied
git clone heroku ssh permission denied
https://stackoverflow.com/questions/13059076/git-push-permission-denied-publickey-windows-xp
heroku - rails - Permission denied (publickey)

我试过了:

  1. heroku keys:clear
    heroku keys:add
    
  2. heroku keys:clear
    *delete every key in .ssh*
    heroku keys:add
    
  3. *delete my application on heroku*
    heroku keys:clear        
    heroku login (adds key for me)
    heroku create
    git push heroku master
    fails
    
  4. *delete the app on heroku*
    delete keys in .ssh
    heroku keys:clear
    copy all files into a new repository
    push new repository to github successfully
    heroku login (adds github key for me)
    heroku create
    git push heroku master
    fails
    
  5. *delete the app on heroku*
    heroku keys:clear
    heroku login (adds key for me)
    heroku create
    heroku git:clone app app
    fails
    

有什么想法吗?我已经完成了链接 SO 中的所有步骤——其中大多数只是没有运行 heroku:add 或设置 ssh 密钥的人(我在每个步骤中都完成了)。

我大部分时间都让 heroku 负责,(而不是直接创建 ssh 密钥)假设内置命令会在没有 ssh 密钥时执行他们需要的操作。好像没有。

编辑:现在我删除了应用程序,新的 relic 插件令人担忧网站已关闭。尝试通过他们的网站登录要求我通过 heroku 登录。由于该应用程序已消失,因此我找不到方法。现在我无法访问该应用程序,有没有办法删除该插件? heroku addons 给出了一个错误,所以我认为我不会通过那里。

EDIT #2:添加了我尝试过的另一个步骤 - 将文件移动到新存储库并推送到新应用程序。

【问题讨论】:

  • 您使用的是heroku gem 还是toolbet?你的操作系统是什么?一段时间后你试过了吗?也许是一些 api 错误?
  • 我用的是win7的自动安装程序,我相信是toolbelt。我在 11 小时前和 2 小时前尝试过(每次尝试多次)。我检查了他们的状态,没有发现任何 API 问题,但我认为在我尝试第一次推送之前(大约)一个小时,有些事情失败了。
  • @NumberOverZero - 您能否详细说明输出对您的帮助? -vvv 发出的调试文本墙无法辨认。
  • heroku keys:clear , heroku keys:add 做到了

标签: heroku


【解决方案1】:

我在 Windows 7 机器上遇到了同样的问题,在这里找到了解决方案:http://www.gmarwaha.com/blog/2011/05/18/heroku-trouble-with-windows-and-ssh-keys/

解决方案: 通常,一旦您按上述方式创建了密钥,“id_rsa”和“id_rsa.pub”两个文件将存储在“.ssh”文件夹中 在用户的主文件夹中。如果你正在使用 linux 似乎已经足够好了。但是对于 git 的 windows 版本 似乎没有削减它。 它希望将密钥存储在 “.ssh”文件夹也在“msysgit”安装文件夹中。如果你 在“msysgit”安装文件夹中找不到“.ssh”文件夹, 随意创建一个。一旦你把这两个关键文件放在那里, 重复整个过程,一切顺利,我的 应用程序部署在 Heroku 云中,世界再次成为 更适合居住的地方。

就我而言,我必须找到git.exe 的安装位置,即C:\Program Files\Git\。下面是步骤:

  1. C:\Program Files\Git\ 内创建.ssh 文件夹
  2. id_rsaid_rsa.pub 从您的主文件夹 (C:\Users\username\.ssh\) 复制到 C:\Program Files\Git\.ssh\
  3. 再试一次C:\dev\heroku\sample-app> git push heroku master

【讨论】:

    【解决方案2】:

    链接到您查看并尝试过的所有其他内容的工作非常棒! (这将改善您得到的响应,但您仍然应该为很多“您尝试过......”和“也许是......”做好准备,因为这是一个系统/环境问题,不在正常流量)

    您的本地终端会话中可能有一些工作已经丢失。 (我遇到过很多次)

    可能是这样的:

    1. heroku 上的 ssh 密钥
    2. 您从该计算机/网络上推至 heroku 的能力
    3. 关于您的 git 存储库的一些信息

    我遇到过一次,它让我发疯。我跳上了我的(免费)cloud9 帐户,从 github 克隆了一些简单的 rails 应用程序并将其推送到 heroku,这帮助我证明了我的 heroku 帐户很好,heroku 本身很好,但是我的本地笔记本电脑在我的配置中存在一些问题. 我认为问题是我的用户名,但我不记得了。 (移动到不同的环境并从头开始帮助我意识到了这个问题)

    【讨论】:

    • 感谢您的回复。 (1) 如果是关于我在 heroku 上的 ssh 密钥,heroku keys:clear 没有注意什么?另外,还有其他方法可以管理他们的我的密钥版本吗? (2) 肯定有可能。我想我以后可以用 cloud9 试试这个。 (3) 我尝试将所有内容复制到一个新的 repo 中,并将其成功推送到 github,然后在 heroku 上删除我的应用程序并尝试将新的 repo 上传到新的 heroku 应用程序。我会把这个添加到列表中,谢谢。
    • 更新:我尝试从 cloud9 推送并成功,所以我将尝试完全重新安装工具带,看看会发生什么。但是,来自 c9 的推送显示 repo 大小为 145mb,而在 github 上它只有 ~1-2(由于我在测试 #4 中创建了一个新的 repo,所以提交的次数少于十次)。一旦我看到重新安装会发生什么,我会接受这一点。感谢您的帮助!
    • 记住 slug 大小 != repo 大小。 slug 包含您的代码以及任何依赖项和任何语言运行时。如果您使用的是 Java 等编译语言,它也将具有编译后的源代码。
    • 我不确定你的意思 - 我的 repo 大小显示为 145MB,而不是 slug 大小。弹头大小为 31.4MB。我知道有评论说 heroku 上的存储库大小比本地大,但是 2 个数量级似乎很多。有什么办法可以让他们把整个事情都吹走并再次完全上传我的存储库?
    • 我将其标记为已接受,因为 cloud9 的建议帮助我诊断了问题,但我仍然不知道是什么原因造成的。我回到了工作状态,所以很好。我的 repo 大小仍然显示异常大...
    【解决方案3】:

    您收到此消息的主要原因是您没有将ssh-keygen 添加到您的环境变量中。

    此命令位于 Git 程序文件的 bin 目录中。

    您应该将该 bin 目录添加到您的环境变量中。

    【讨论】:

      猜你喜欢
      • 2013-04-29
      • 2012-12-29
      • 1970-01-01
      • 2013-11-08
      • 2010-12-21
      • 2014-03-18
      • 1970-01-01
      • 2012-05-27
      • 2020-01-04
      相关资源
      最近更新 更多