2017-06-04 135 views
0

當我嘗試和推動承諾高達GitHub上,我得到一個OSX SSH密鑰似乎無法與git

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

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

幸運的是,help.GitHub有a great article on solving SSH issues.我通過這個指南跑,發現ssh-add -l -E md5回報The agent has no identities.該指南says to generate a new key,我做了。之後,ssh-add返回像預期的2048 MD5:a0:dd:42:3c:5a:9d:e4:2a:21:52:4e:78:07:6e:c8:4d /Users/you/.ssh/id_rsa (RSA)

太好了,我想問題已經解決了。我嘗試再次推動,並獲得相同的公鑰問題。我確定我的密鑰在GitHub中正確設置。當我開始新的會話時,ssh-add再次返回沒有身份。我甚至從頭開始按照上面的文章開始了這個過程。我有checked my permissions,現在我沒有排除故障線索。

+0

很難知道發生了什麼不完整的日誌你的行動,價值觀,他們回來了,等等。例如,如果你開始一個新的代理,你可能已經加載了鑰匙插進*是*劑,而不是蘋果的 - 這會解釋一個不知道任何事情的新終端。 –

+0

......所以,在MacOS上,所有運行'eval「$(ssh-agent -s)」'的指令都不適用:鑰匙串已經爲您提供了一個與會話中的所有內容共享的代理。 –

+0

順便說一句,你在代理中有一個密鑰(「你的代理」是Apple Keychain,而不是你手動調用的任何東西),使用'ssh-add -L'(yes,* capital *'L')來轉儲公共端,並確保它與github中的完全相同 - 只是爲了確保它們在兩個地方都是同一個關鍵。 –

回答

2

首先,確保您的公鑰是correctly registered on your GitHub profile(作爲一個連續的行,沒有任何換行符)。其次,確保生成(至少用於測試)私鑰而不是受密碼保護:您只需要ssh代理來管理帶密碼的密鑰。如果你的密鑰沒有密碼,你完全不需要ssh代理。

ssh-keygen -t rsa -C "key for GitHub access" -q -P "" 

這將取代您當前的密鑰,因此請確保您不再需要您當前的密鑰。
Test your keyssh -T [email protected]

+0

不使用密碼短語是問題。我不知道爲什麼我的鑰匙首先停止工作,但是讓我重新開始了!謝謝一堆!現在我可以研究爲什麼SSH代理不起作用,並且看看我是否可以再次開始使用密碼保護密鑰。 –

+0

OS X行爲已更改。您需要在每次登錄/重新啓動後重新添加密鑰。 –