2017-07-17 193 views
1

我在遠程訪問的機器上使用git(github)時遇到了一些問題。我通過ssh從家裏登錄到我的工作計算機上。通過遠程機器連接到github的ssh密鑰問題

[email protected]$ ssh [email protected] 

之後,我嘗試通過家庭對工作計算機上的github執行pull或push請求,例如,

[email protected]$ git pull origin branch 

後,我收到錯誤:

Permission denied (publickey). 
fatal: Could not read from remote repository. 

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

我試圖從我的工作電腦加載SSH密鑰使用:

[email protected]$ eval "$(ssh-agent -s)" 
[email protected]$ ssh-add ~/.ssh/id_rsa 

但仍沒有運氣。當我在工作計算機上工作時,我可以向github發出請求而不出現任何問題;所以它似乎與我的ssh會話的ssh密鑰的狀態有關的問題。

感謝您的幫助!

+0

驗證您在workViaHome上添加的私鑰實際上是您在github上添加的公鑰的正確密鑰。還要驗證〜/ .ssh目錄的訪問權限是否正確。最後,嘗試使用與git相同的用戶/端口對github執行ssh操作,並添加詳細標誌以獲取更多信息。 – DusteD

+0

所以我孤立了這個問題,以ssh-add不觸發git使用〜/ .ssh/id_rsa鍵,它仍然嘗試使用默認鍵。我現在被騙了,因爲我在github上添加了默認密鑰並且它可以工作。我用ssh -vT [email protected]弄明白了。我仍然不確定爲什麼ssh繼續回落到默認密鑰 – BenJ

回答

0

如果未在配置中另行指定,或者ssh-agent未提供任何其他密鑰,SSH將使用默認密鑰。

如果您在非標準位置使用的密鑰已添加到gnome-keyring中,您可能會注意到此行爲,因爲gnome-keying僅針對圖形會話啓動,而不是針對ssh會話啓動。

當然,您可以通過在工作計算機上的~/.ssh/config中正確配置此密鑰來解決此問題。只需添加

Host github.com 
    IdentityFile ~/.ssh/path_to_key 
    IdentitiesOnly yes