0

我试图将我的博客(Octopress)推送到 github 并收到此错误:

MacBook-Air:octopress bdeely$ git push origin source
Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

我生成了一个 SSH 密钥,将其保存,甚至在 SSH 密钥设置中将其与我的 GitHub 帐户关联,但我继续检查状态并得到相同的错误:

MacBook-Air:.ssh bdeely$ ssh -T git@github.com
Permission denied (publickey).

除此之外,我查看了github 的帮助页面,做了以下操作并得到了这个错误信息:

MacBook-Air:~ bdeely$ ssh-add -l
The agent has no identities.

有谁知道出了什么问题以及我该如何解决?

4

5 回答 5

5

在 OSX 上,如果您键入

ssh-add -l

并且您返回“无身份”,这意味着您的 ssh 代理没有加载任何身份。通常,当 mac 重新启动时,您没有身份。

我通过显式运行重新启动后添加我的

ssh-add

这会从 ~/.ssh/id_rsa 加载默认身份

您还可以使用具有特定身份的 ssh-add 命令

ssh-add ~/foo/bar/is_rsa

添加身份后,您可以通过键入将它们全部列出

ssh-add -l

确保您至少列出了一个。

于 2015-03-12T21:55:13.613 回答
3

在你的终端试试这个:

eval `ssh-agent -s`

ssh-add ~/.ssh/id_rsa

输入您的密码(如果有),它应该可以工作。希望这可以帮助 :-)

于 2013-12-03T09:15:09.807 回答
3

遵循以下命令:

    mkdir ~/.ssh //如果文件夹不存在...
    cd ~/.ssh

    ssh-keygen -t rsa -C "youremail@somewhere.gr"
    #hit enter 当要求文件保存密钥时。
    #输入密码

最后将id_rsa.pub 复制到您的 github 帐户中。

于 2013-08-17T21:25:46.993 回答
1

我希望这可以帮助你:

我遇到了同样的问题,正要因疯狂的沮丧而睁大眼睛;网上没有任何东西让我得到答案,我试图在git push没有准确指定 URL 的情况下使用命令(这也可以解决我认为的问题),所以我没有看到连接是如何失败的。

.ssh/config我已经为两个具有两个不同密钥的用户正确设置了我的密钥,即使使用IdentitiesOnly yes应该覆盖ssh-agent自动提供错误 ssh 身份的密钥也是如此。

当我检查本地存储库配置时,我终于意识到了问题——它是条目

[remote "origin"]
  url = git@github.com:{my-username}/{my-repo-name}.git

我在.ssh/config文件中的配置对两个用户都使用了相同的HostName github.com条目,而且我对这一切都是全新的,所以我没有意识到要正确覆盖ssh-agent,我必须指定确切的 URL,否则我的.ssh/config文件中的特定身份将被忽略并且默认使用列出的第一个键ssy-agent(我的情况是错误的)。

我通过将本地 repo URL 更改为 来解决此问题url = git@github-personal:{my-username}/{my-repo-name}.git,我Host github-personal.ssh/config.

解决这个问题的另一种方法是在命令本身的 URL 中指定用户git push,或者更好的是,在解决这个我自己的蹩脚方式之后的帖子中描述的解决方案:

https://superuser.com/questions/272465/using-multiple-ssh-public-keys

我不敢相信没有官方来源可以提供解决方案,甚至可以正确解释这种看起来很常见的边缘情况(从一台使用 SSL 的机器访问两个不同的 github 帐户)。

于 2013-11-26T06:43:02.190 回答
0

我遇到了同样的问题。原因是我将密钥文件移到了另一个文件夹;当我将它们移回原来的位置时,它成功地工作了。

于 2016-04-06T09:49:14.757 回答