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

时间:2013-08-17 21:13:21

标签: 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.

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

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

除此之外,我检查了github's help page,执行了以下操作并收到此错误消息:

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

有谁知道错误以及如何解决这个问题?

5 个答案:

答案 0 :(得分:3)

按照命令:


    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帐户中。

答案 1 :(得分:2)

在您的终端试试这个:

eval `ssh-agent -s`

ssh-add ~/.ssh/id_rsa

输入您的密码(如果有),它应该有效。希望这会有所帮助:-)

答案 2 :(得分:2)

在OSX上,如果键入

ssh-add -l

然后你回来了#34;没有身份",这意味着你的ssh代理没有加载任何身份。通常,当mac重新启动时,你没有身份。

我通过显式运行

重新启动后添加了我的
ssh-add

这会从〜/ .ssh / id_rsa

加载默认标识

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

ssh-add ~/foo/bar/is_rsa

添加您的身份后,您可以通过输入

来列出所有身份
ssh-add -l

确保您至少有一个列出。

答案 3 :(得分:0)

我希望这会对你有所帮助:

我遇到了同样的问题,并且疯狂的沮丧地想要自己的眼睛;网上没有任何东西让我得到答案,我试图使用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列出的第一个密钥(我的情况是错误的)将默认使用。

我通过将本地回购网址更改为url = git@github-personal:{my-username}/{my-repo-name}.git来解决此问题,我在Host github-personal中将.ssh/config设置为git push

解决这个问题的另一种方法是在{{1}}命令本身的URL中指定用户,或者甚至更好,在解决这个我自己糟糕的方式之后的帖子中描述的解决方案:

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

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

答案 4 :(得分:0)

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