2013-08-17 57 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

我遇到了同樣的問題。原因是我將密鑰文件移到了另一個文件夾中;當我將它們移回原來的位置時,它成功運行。