2012-05-09 49 views
0

問題:當我嘗試使用由puttygen生成的ssh2-RSA密鑰與命令行git工具時,密鑰被拒絕。Puttygen RSA密鑰在Windows上使用命令行git

詳細信息:我在我的電腦上安裝了TortoiseGit(以及msysgit)。 TortoiseGit設置爲使用PuttyGen生成密鑰。當我嘗試使用PuttyGen生成的一個密鑰在命令行git工具中時,它會拒絕公鑰,並且在某些情況下會要求密碼,即使密鑰沒有。我在多臺計算機上運行過這個問題(所有運行的Windows 7 x64)有關如何解決此問題的任何想法,所以我不必爲我的cmd行客戶端和TortoiseGit單獨使用密鑰?

TortoiseGit設置爲自動加載推送對話框中的每個回購點的putty鍵也可能是有意義的。當我運行ssh -v [email protected]它找到了正確的密鑰,但是當它試圖連接時,它被拒絕說密鑰是錯誤的。如果我使用由ssh-keygen製作的密鑰,它就可以工作。

軟件版本: MsysGit 1.7.7.1 SSH 4.6p1 的puttygen 0.61 Tortise 1.7.5.0

感謝您的幫助(如果這是錯誤的交換將要放這個在請告訴我,所以我可以快速關閉並移動) Eric Fode

+0

[配置Git通過SSH]可能的重複(http://stackoverflow.com/questions/1595848/configuring-git-over-ssh) –

回答

3

重複的this one。簡而言之:PuTTY(其中puttygen是其中的一部分)和OpenSSH(其中ssh-keygen是其中的一部分)使用不同的格式來存儲其密鑰,並且您必須堅持其中一個或執行轉換。

就我個人而言,我已經設置Git使用plink.exe作爲SSH代理,並通過pageant程序(它是PuTTY的ssh-agent)提供密鑰。

爲了讓它更清楚:Git for Windows捆綁了OpenSSH,但它並沒有綁定到它,並且可以很高興地使用PuTTY(如果這樣做)。每個人都可以在這裏挑選他們的選擇我認爲如果PuTTY安裝在系統中或被其他工具使用(看起來像你的情況),那麼使Git使用PuTTY是一個自然的選擇。

+1

雖然使用PuTTY和Git for Windows時一個(嚴重)警告:當連接到第一次看不到主機時,它會要求用戶接受該主機的密鑰指紋 - 請參閱[此問題](http://code.google.com/p/msysgit/issues/detail?id=96 )。解決辦法是首先用手工使用PuTTY連接到主機(通過其GUI客戶端或通過運行'plink.exe'。 – kostix

+0

這個重複的問題似乎並不能解釋*如何設置Git以使用'plink .exe'作爲它的SSH代理。你有任何指針嗎?:) –

+1

@OwenBlacker,肯定 - 遵循[本指南](http://nathanj.github.com/gitguide/index.html)。另外,請不要混用以下術語:'plink.exe'是一個SSH *客戶端*,它可能(或者可能不會 - 但它通過defaut來實現)聯繫正在運行的SSH *代理*,該代理由一個名爲PuTTY套件中的'pageant.exe'。 – kostix