我在64位Windows 7上。我正在使用最新的Heroku Toolbelt和GitHub Windows应用程序(两天前下载)。两天前一切都很完美。我安装了PHP和Apache,突然Heroku只给了我
Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists
我已经重复完成了这两个命令。
heroku keys:clear
heroku keys:add
我删除了我的密钥并重新制作了它们。我用其他应用程序生成了一些(puttygen)。我通过命令行和Web界面上传了它们。我甚至让GitHub Windows应用程序生成了一个新密钥,我上传了那个密钥。我不能来自heroku git push
或git clone
。我甚至尝试在本地创建一个新的git repo并添加heroku作为遥控器,然后从那里推送。没有任何运气。
我已经阅读了几十个stackoverflow帖子并尝试了所提供的每个解决方案。没人帮忙。
修改
我不知道这是否重要,但我正在制作一个Facebook应用并通过heroku's help page。我从顶部重新开始工作,但我无法通过git clone
命令。我也从头开始重新安装了heroku工具带。
答案 0 :(得分:21)
我遇到过类似的东西 - 相同的错误信息,来自一个非常相似的设置(最新的heroku工具箱,安装了Github Windows客户端)
我认为git是关于公钥文件名称的假设。 Github的Windows客户端在$ HOME / .ssh目录中创建github_rsa和github_rsa.pub。如果你只在〜/ .ssh目录中看到这些,请尝试使用ssh-keygen而不是Github客户端创建一个标准名称(id_rsa.pub)的新文件。
我能够通过以下步骤解决这个问题。
使用ssh-keygen 创建新的公钥:
$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
...
此时我现在有了id_rsa和id_rsa.pub以及我的.ssh目录中的github密钥。
然后重新上传:
$ heroku keys:add ~/.ssh/id_rsa.pub
Uploading ssh public key...
(从http://www.whatibroke.com/?p=284到git push heroku master Permission denied (publickey). fatal: The remote end hung up unexpectedly)
答案 1 :(得分:0)
这就是我解决问题的方法:
我安装了heroku toobelt并使用heroku keys:remove
删除此PC的旧密钥,然后:
1.在此答案中添加C:\Program Files (x86)\Git\bin
%PATH%
https://stackoverflow.com/a/6318188/521088
(所以heroku键:add可以使用ssh-keygen)
2。heroku keys:add
完成!强>