2013-08-17 61 views
0

我试图把我的博客(Octopress)至Github上,并得到这个错误:SSH -T [email protected]权限被拒绝(公钥)

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 [email protected] 
Permission denied (publickey). 

除了这个,我查github's help page,做了以下和得到这个错误消息:

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

有谁知道什么是错的,我该如何解决这个问题?

+0

您是否检查.ssh文件夹中的两个文件的权限?他们必须有600个permisions?你如何生成密钥? –

回答

2

按照命令:

 

    mkdir ~/.ssh //in case that the folder doesnt exist... 
    cd ~/.ssh 

    ssh-keygen -t rsa -C "[email protected]" 
    #hit enter when asks for file to save the key. 
    #enter the passphrase 

最后副本id_rsa.pub到您的帐户GitHub的。

+0

谢谢Christos。 我已经创建了SSH密钥,如上所述。 我将如何添加600个权限? – Berzerkeley

+0

在Linux操作系统,您可以用下面的办法:'CD〜/ .ssh'和 '搭配chmod 600 id_rsa *' –

+0

我仍然得到所有相同的错误消息... – Berzerkeley

0

我希望这可以帮助你:

我有相同的问题,将采取自己的眼睛出与疯狂的无奈;没有什么在线让我回答,我试图使用git push命令,而没有完全指定URL(这也可以解决我相信的问题),所以我没有看到连接失败。

我已经建立了我的.ssh/config正确的两个用户用两个不同的密钥,即使使用IdentitiesOnly yes这是应该覆盖ssh-agent已自动供应WRONG SSH身份。

我终于意识到这个问题,因为我检查了本地存储库配置 - 这是进入

[remote "origin"] 
    url = [email protected]:{my-username}/{my-repo-name}.git 

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

我通过将本地回购网址更改为url = [email protected]:{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帐户)。

2

在终端试试这个:

eval `ssh-agent -s` 

ssh-add ~/.ssh/id_rsa 

输入您的密码,如果任何和它应该工作。希望这有助于:-)

0

在OSX,如果键入

ssh-add -l 

和你回来“无身份”,这意味着你的ssh代理没有加载到任何身份。通常情况下,当mac重新启动时,您没有身份。

我通过明确运行

ssh-add 

这从加载的〜/ .ssh/id_rsa

默认的身份你也可以使用ssh-add命令以增加矿井回重新启动后具体身份

ssh-add ~/foo/bar/is_rsa 

后你把你的恒等式,您可以通过键入

似乎他们所有上市10
ssh-add -l 

确保您至少有一个列出。

0

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