【发布时间】:2013-08-08 05:19:01
【问题描述】:
所以我遇到了你尝试推送到 Heroku 的问题,它说 Permission denied (publickey). fatal: Could not read from remote repository. 所以我找到了 this question(它更详细地描述了它)并通过了整个答案并设法解决了我的问题。我建议其他阅读本文的人阅读下一段以了解我的特定问题,然后在继续之前尝试上述链接中的解决方案。
但我还没有完全准备好。事情就是这样。虽然我不使用它,但我已经安装了 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 -l 说The agent has no identities,无论那个是什么意思,这就是我要研究的内容。兔子洞越来越深......
另外,如果我随后退出 bash,ssh-add -l 会直接返回到 Could not connect to authentication agent。 :( 我希望它在我的正常命令提示符下工作!!
【问题讨论】:
-
您有超过 1 个公钥吗?我知道 GitHub for Windows 会自动生成一个名为
github_rsa.pub或类似名称的东西,但默认情况下,ssh 密钥生成会创建一个名为id_rsa.pub的密钥。如果您有多个,您将哪一个添加到heroku?默认情况下,ssh 工具将使用id_rsa.pub,除非您明确传递不同公钥的路径。 -
在学习创建、存储和排列 SSH 密钥的艰巨过程中,我将所有内容简化为一个通用密钥。
-
请说明您使用的是哪种 shell,以及您的主目录的位置,以及您的私钥是否使用密码加密。
-
您可能在 ~/.ssh/config 或 /etc/ssh/config 中为 github 定义了一个键。请参阅我对stackoverflow.com/questions/18101701/…的回复
-
我正在使用 Windows 命令提示符,它不允许我推送到 heroku,除非我从 GitHub for Windows 资源管理器启动它,在这种情况下它可以。我无法弄清楚我从 Windows 资源管理器打开的终端和我从 GitHub 资源管理器打开的终端之间有什么区别。主目录是C盘,我不相信私钥是加密的。
标签: git heroku windows-7 github ssh