所以我遇到了问题,你试图推送到Heroku并且它说Permission denied (publickey). fatal: Could not read from remote repository.
所以我找到了this question(更详细地描述了它)并且完成了整个答案并且成功了解决我的问题。我建议阅读本文的其他人阅读下一段以了解我的特定问题,然后在继续此处之前尝试上述链接中的解决方案。
但我还没有完全确定。这就是事情。虽然我没有使用它,但我安装了GitHub GUI,如果我右键单击GUI浏览器中的本地仓库并选择“在这里打开Shell”,无论该shell的上下文/环境是什么,我都可以推送到Heroku从那里没问题。
但是,如果我只是打开好的'命令行并导航到app文件夹并尝试相同的事情,我得到整个 Permission Denied你的公钥很糟糕。
终端配置有什么不同?
修改
SEEM 以上命令失败,因为ssh由于某种原因无法正常工作。当我运行ssh-add -l
时,我得到Could not connect to authentication agent
,这是另一个流行的错误,包含许多建议的解决方案。我发现的唯一一个(十分之一以上)可以运行bash
(我们在Windows命令提示符下,请注意),然后是eval "$(ssh-agent)"
,其中{{1}无论那意味着什么,Agent pid 48532
之后ssh-add -l
说The agent has no identities
, 意味着什么,这就是我即将研究的内容。兔子洞更深了......
此外,如果我退出bash,ssh-add -l
会回到Could not connect to authentication agent
。 :(我希望这在我的正常命令提示符下工作!!
答案 0 :(得分:1)
免责声明:我几乎不知道我在说什么。
所以我发现我收到了Permission denied (publickey) fatal: Could not read from remote repository
消息,因为ssh-agent
无法正常工作。当我尝试ssh-add -l
时,会说Could not connect to authentication agent
。一旦我进入bash并且eval "($ssh-agent)"
,然后ssh-add -l
,它会说The agent has no identities
,这听起来像是一部精彩的间谍电影,但实际上只是让我感到烦躁不安完成工作。
我真的只知道这有什么意义或意味着什么,但这是我修复它的方式。请记住,这一切都是在标准的Windows 7命令提示符下完成的。假设你已经不在bash中了 -
cd path-to-Git/bin (for example, cd C:\Program Files\Git\bin)
bash
exec ssh-agent bash
ssh-add "path/to/.ssh/id_rsa"
确保路径指向“私钥”。路径必须用引号括起来。不要在末尾添加“.pub”。你会知道它有效,因为它会给你一个关于正在创建的身份或类似信息的消息。
剩下的唯一让我感到困惑的是想知道我是如何在第一时间安装bash的......也许它带有git?还是GitHub?还是Rails?还是Heroku?真的不知道它来自哪里......当然它以前不存在,我不认为它带有Windows 7 ......
无论如何,在我完成所有这些之后,即使在关闭和重新打开之后,git push heroku master
也会在所有贝壳中为你工作,包括进出bash。无论我做了什么,它都是永久性的并且有效!现在开心。
答案 1 :(得分:0)
您需要检查两个命令行环境中的%HOME%
是什么。
在“good ol'命令行”中,您可以输入:
set HOME
这将显示其价值。
但是如果没有定义,那么你的错误信息是正常的。
类型:
set HOME=%USERPROFILE%
并检查%PATH%
(为了从两个环境中的相同命令中受益)。