[英]TortoiseGit using incorrect SSH key
目前我對烏龜 git 有一個奇怪的問題,我無法弄清楚。 嘗試提交到我在 github 上的存儲庫時出現錯誤
錯誤:對 martindevans/Hermes.git 的權限拒絕 key2
Key2 是我用來訪問不同 github 存儲庫的密鑰,但是遠程 url 未設置為使用 key2,正如您在此處看到的那樣,它被設置為使用 private.ppk
我是在做明顯錯誤的事情,還是烏龜 git 壞了?
NB。 回應評論。 使用普通 git 會導致:
C:\Users\Martin\Documents\Visual Studio 2010\Projects\Hermes>git push
Permission denied (publickey).
fatal: The remote end hung up unexpectedly
有不同的私鑰格式。 我的密鑰對是用 puttygen 生成的,但我的 Tortoise 被配置為使用 ssh.exe(表單 msysgit)作為 ssh-client。 所以我把它改成了 plink(來自 Tortoise),它起作用了。
附加說明:使用正確的 URL! Github 為您提供了三個 URL https、git 和 ssh。
編輯:
我在這里調整了設置:
Settings - TortoiseGit >> Network >> SSH-Client
C:\Program Files\TortoiseGit\bin\TortoisePLink.exe
我已經生成了密鑰對:
C:\Program Files\TortoiseGit\bin\puttygen.exe
哈! ProcMon 來救援。 這是 tortoisegit / tortoiseplink 中的一個錯誤。 它應該優先選擇通過選美為該遠程設置的密鑰,而是優先選擇通過 putty 為該特定服務器存儲在注冊表中的密鑰。 兩個修復。
這里有 2 個可能的修復
您的 tortoiseplink 與 putty 集成,它正在讀取您保存在與該服務器關聯的 putty“會話”中的私鑰。 至少對我來說是這樣。 雖然我不在 github 上,所以我不知道這個解決方案對每個人的可行性。
我建議在膩子會話配置中手動刪除密鑰集,並為您的膩子會話使用 pagaent,因為這就是 tortoise git 所做的。 這也使 tortoisegit 使用遙控器的密鑰集。
因此,您可以打開 putty,加載與服務器關聯的任何會話,轉到 Connection/SSH/Auth 並修改/刪除“用於身份驗證的私鑰文件”值。 MOdification 可能會修復此 repo,但如果您對同一服務器使用不同的密鑰,則會搞砸另一個 repo。
您可以自己修改/刪除注冊表項。 它是HKEY_CURRENT_USER\Software\SimonTatham\PuTTY\Sessions\$SERVERNAME$\PublicKeyFile
我在設置 TortoiseGit 以訪問 Bitbucket (Win10) 時遇到了同樣的問題。 為了解決這個問題,我必須刪除注冊表中HKEY_CURRENT_USER\Software\SimonTatham\PuTTY\SshHostKeys
中保存的舊主機密鑰(不是(默認)密鑰)。
在 git bash 中創建密鑰:
ssh-keygen -t rsa
將所有內容留空,不要設置密碼。 取 ~/.ssh/id_rsa.pub 的內容並將其粘貼到 github 提供的公鑰空間中。
現在通過 ssh 連接到 github 來測試它。 如果可行,您將能夠使用 git。
希望這可以幫助。
我在推送到 GitHub 時隨機出現了這個確切的錯誤。 我嘗試了此處列出的所有內容,但均無濟於事。 我的密鑰仍然很好——我仍然可以通過ssh -vT git@github.com
進行連接,並且可以通過 Git Bash 推送/拉取。
我什至重現了 TortoiseGit 使用新密鑰,然后切換回舊密鑰並失敗,然后切換回新密鑰並失敗。 所以這似乎是 TortoiseGit 與 PuTTY 集成中的一個錯誤,盡管不是上面@scaryman 評論中列出的錯誤。
最后,以下工作:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.