13

编辑#3

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

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

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


我正在Permission denied (publickey)尝试git push heroku master

与以下帖子不同的一些原因:

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

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

git clone heroku ssh 权限被拒绝

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

git push heroku master 权限被拒绝(公钥)。致命:远程端意外挂断
git push heroku master 权限被拒绝
git clone heroku ssh 权限被拒绝
https://stackoverflow.com/questions/13059076/git-push-permission-denied-publickey-windows-xp
heroku - rails - Permission拒绝(公钥)

我试过了:

  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 密钥时执行他们需要的操作。似乎没有。

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

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

4

3 回答 3

9

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

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

就我而言,我必须找到git.exe安装位置,即C:\Program Files\Git\. 所以这里是步骤:

  1. 在里面创建.ssh文件夹C:\Program Files\Git\
  2. id_rsaid_rsa.pub从您的主文件夹 ( C:\Users\username\.ssh\) 复制到C:\Program Files\Git\.ssh\.
  3. 再试一次C:\dev\heroku\sample-app> git push heroku master
于 2013-11-07T10:49:47.100 回答
3

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

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

可能是这样的:

  1. 你在heroku上的ssh密钥
  2. 你从那台计算机/网络上推到 heroku 的能力
  3. 关于你的 git repo 的一些事情

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

于 2013-02-05T19:05:35.230 回答
0

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

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

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

于 2013-06-10T08:05:44.060 回答