2

所以我遇到了你尝试推送到 Heroku 的问题,它说Permission denied (publickey). fatal: Could not read from remote repository.所以我找到了这个问题(它更详细地描述了它)并浏览了整个答案并设法解决了我的问题。我建议其他阅读本文的人阅读下一段以了解我的特定问题,然后在继续之前尝试上述链接中的解决方案。

但我还没有完全确定。事情就是这样。虽然我不使用它,但我已经安装了 GitHub GUI,如果我在 GUI 资源管理器中右键单击本地存储库并选择“在此处打开 shell”,无论该 shell 的上下文/环境是什么,我都可以推送到 Heroku从那里没有问题。

但是,如果我只是打开好的 ol' 命令行并导航到应用程序文件夹并尝试同样的事情,我会得到整个Permission Denied your public keys 很糟糕的事情。

终端配置可能有什么区别?

编辑:

上面的命令似乎失败了,因为 ssh 由于某种原因无法正常工作。当我运行时ssh-add -l,我得到Could not connect to authentication agent了另一个带有许多建议解决方案的流行错误。我发现的唯一一个(超过 10 个)是运行bash(我们在 Windows 命令提示符下,请注意),然后eval "$(ssh-agent)",它说Agent pid 48532,不管那意味着什么,之后ssh-add -lThe agent has no identities,不管意味着什么,这就是我要研究的。兔子洞越来越深......

此外,如果我随后退出 bash,ssh-add -l则直接返回Could not connect to authentication agent. :(我希望它在我的正常命令提示符下工作!!

4

2 回答 2

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?还是导轨?还是Heroku??真的不知道那是从哪里来的……以前肯定不存在,我不认为 Windows 7 会出现这种情况……

无论如何,在我做完所有这些git push heroku master之后,即使在关闭和重新打开之后,在所有 shell 中都为我工作,进出 bash。无论我做什么,它都是永久有效的!暂时开心。

于 2013-08-11T02:35:10.023 回答
0

您需要检查%HOME%两个命令行环境中的内容。

在“good ol' command line”中,您可以键入:

set HOME

这将显示它的价值。

但是如果没有定义,那么你的错误信息是正常的。

类型:

set HOME=%USERPROFILE%

并检查%PATH%(为了从两个环境中的相同命令中受益)。

于 2013-08-09T19:18:21.960 回答