ssh-Tgit@github.com权限被拒绝(公钥)

ssh-Tgit@github.com权限被拒绝(公钥),ssh,ssh-keys,octopress,Ssh,Ssh Keys,Octopress,我试图将我的博客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. 我生成

我试图将我的博客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).
除此之外,我还进行了检查,执行了以下操作,并收到了此错误消息:

MacBook-Air:~ bdeely$ ssh-add -l
The agent has no identities.
有人知道什么地方出了问题,以及我如何解决这个问题吗?

按照以下命令操作:

mkdir ~/.ssh //in case that the folder doesnt exist... cd ~/.ssh ssh-keygen -t rsa -C "youremail@somewhere.gr" #hit enter when asks for file to save the key. #enter the passphrase 最后,将id_rsa.pub复制到您的github帐户。

我希望这能帮助您:

我也有同样的问题,我要带着疯狂的沮丧走出自己的眼睛;没有什么在线的东西能让我找到答案,我试图使用git push命令,但没有指定URL,这也能解决我认为的问题,所以我没有看到连接是如何失败的

我已经为两个具有两个不同密钥的用户正确设置了我的.ssh/config,甚至使用了identiesonly yes,它应该覆盖自动提供错误ssh标识的ssh代理

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

[remote "origin"]
  url = git@github.com:{my-username}/{my-repo-name}.git
我在.ssh/config文件中的配置对两个用户使用了相同的主机名github.com条目,我对所有这些都是全新的,所以我没有意识到要正确覆盖ssh代理,我必须指定确切的URL,否则我的.ssh/config文件中的特定标识将被忽略,默认情况下将使用ssy代理列出的第一个密钥,即我的案例中错误的密钥

我通过将本地回购URL更改为URL=git@github-personal:{my username}/{my repo name}.git,其中我已将主机github personal设置为my.ssh/config中的标识

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


我不敢相信,没有任何官方来源能够提供解决方案,甚至不能正确解释这种边缘情况,这种情况似乎非常常见,即使用SSL从一台机器访问两个不同的github帐户。

在您的终端中尝试以下方法:

eval `ssh-agent -s`

ssh-add ~/.ssh/id_rsa
输入您的密码短语(如果有),它应该可以工作。希望这有帮助:-

在OSX上,如果您键入

ssh-add -l
您没有返回任何标识,这意味着您的ssh代理没有加载任何标识。通常,当mac重新启动时,您没有身份

我在重新引导后通过显式运行

ssh-add
这将从~/.ssh/id_rsa加载默认标识

您还可以使用具有特定标识的ssh add命令

ssh-add ~/foo/bar/is_rsa
添加您的标识后,您可以通过键入来查看所有列出的标识

ssh-add -l

确保您至少列出了一个。

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

您是否检查了.ssh文件夹中两个文件的权限?他们必须有600个许可证?你是如何生成密钥的?谢谢Christos。如上所述,我已经创建了SSH密钥。如何添加600权限?在linux操作系统中,您可以使用以下方法:cd~/.ssh和chmod 600 id_rsa*如何将id_rsa.pub复制粘贴到github帐户?如果尚未找到,请签出。我发现了我的问题。。。在本节中:输入保存密钥的文件/Users/you/.ssh/id_rsa:我无意中输入了文本,而不是简单地按Enter键。这将是一个不可能找到的错误……有一个类似的问题,只是在我的例子中,.ssh/config中的问题与主机*的IdentityFile定义有关。一旦我注释了IdentityFile,然后ssh-Tgit@github.com通过。在我的例子中,我在Host*下再次定义了identiesonly yes,但是删除它或切换到no没有任何影响。