2012-04-15 25 views
15

延續問題here的: 我試圖建立在GitHub上我的第一個Git倉庫。 (注意,這意味着我不能使用膩子,我使用的是openssh,或者至少我應該和我認爲我是)。我一直在關注GitHub的網站here上的文檔。直到最後一條命令:git push -u origin master,我纔得到一切。它給了我下面的錯誤:的Git服務器的主機密鑰 - GitHub.com

The server's host key is not cached in the registry. 
You have no guarantee that the server is the computer you think it is. 
The server's rsa2 key fingerprint is: ssh-rsa 2048 
16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48 
Connection abandoned. fatal: The remote end hung up unexpectedly 

我猜這意味着我的known_hosts文件的SSH-RSA密鑰沒有找到,但我不知道如何解決這個問題。我試過ssh -T [email protected],我登錄就好了。我也嘗試關閉git bash並重新打開以防萬一它是緩存問題。這不能解決問題。這是我得到的與文檔指出的唯一不同的輸出。我希望建立一個可愛的Java助手庫,所以任何幫助將不勝感激!

+0

奇怪......就像http://stackoverflow.com/questions/10156356/github-the-remote-end-hung-up-unexpectedly/10156776#comment13041705_10156776。同樣的問題:'$ HOME/ssh/known_hosts'存在嗎? '$ HOME'(或'git-cmd.bat' DOS會話中的'%HOME%')是否已經定義好了? (如http://stackoverflow.com/questions/10122439/msysgit-and-ssh-config-missing/10122865#10122865) – VonC 2012-04-15 21:33:50

+0

爲什麼你認爲你不能膩子?你確定ssh-agent正在運行嗎?我已經使用Plink.exe和ssh.exe連接到Github。如果可以,請發佈您的.git/config。 – 2012-04-15 21:34:56

+0

另外,你碰巧有GIT_SSH環境變量集嗎? – 2012-04-15 21:44:02

回答

6

理想的解決方案將是(如果你真的不需要使用git的砰砰)去除GIT_SSH環境變量和混帳擊產生新密鑰對與命令ssh-keygen -t rsa -C "youremail"然後改變你的ssh在github中輸入關鍵字,因爲從我的評論中瞭解到的是putty和openssh是衝突的。

但是,如果您仍然想使用plink,您可以使用PuTTYgen生成PuTTY格式密鑰,然後在github中更改您的公鑰並在PuTTYagent中加載您的私鑰,然後您應該使用PuTTY連接到github.com會將githubs指紋添加到known_hosts中,並且您很好。這將是一個資源github與PuTTY​​

+0

我刪除了環境變量(因爲如果GitHub說的是實話,我只能使用OpenSSH)並嘗試創建一個新的密鑰對。我成功地將它添加到我在GitHub上的帳戶並使用'ssh -T git @ github.com'進行身份驗證,但是當我嘗試調用'git push -u origin master'時,它給了我'沒有可用的身份驗證方法'錯誤。我猜這是因爲我的環境變量中沒有plink.exe的替代方案,但是...是的,我如何使用OpenSSH提供受支持的身份驗證方法? – kentcdodds 2012-04-17 14:59:02

+0

我沒有一個GIT_SSH變量,也沒有我的工作很好它不是這種情況,你可以嘗試在詳細模式'git push -vu origin master'上運行該命令,它會輸出一些關於真正失敗的調試信息。 – Learath2 2012-04-17 15:28:08

+0

唯一的變化是在輸出它輸出的錯誤之前:'推送到[email protected]:kentcdodds/Java-Helper.git' – kentcdodds 2012-04-17 15:34:08

6

在Windows上,似乎有時候您並沒有真正接受服務器的主機密鑰。

嘗試從電源外殼下面的命令之一:

ssh github.com 

或者

plink.exe -agent github.com 

運行這些獨立的,按y當被問及接受主機密鑰。

使用ssh-add將私鑰添加到當前的電源外殼會議:

C:> ssh-add PATH\TO\PRIVATE\KEY 

之後,您應該能夠成功運行git push

來源:http://help.github.com/ssh-issues/

+0

'ssh github.com'給了我一個'Permission denied(publickey)'和'plink.exe -agent github.com'問我是否要將密鑰存儲在chache中。我說是的,然後它說'登錄爲:',我試着我的github用戶名,也沒有什麼,都給了我'沒有支持的認證方法可用'錯誤。請注意,在此會話中,我已成功通過'ssh -T git @ github.com'進行身份驗證。我總共虧損了...... – kentcdodds 2012-04-16 23:11:18

+0

哈哈,對不起,我應該解釋當我嘗試推進時會發生什麼。現在,當我嘗試'git push -u origin master'時,我得到'致命錯誤:斷開連接:沒有可用的支持身份驗證方法(服務器發送:publickey)'並斷開連接。 – kentcdodds 2012-04-17 13:54:17

+0

感謝您的編輯。不幸的是,當我嘗試添加從Git Bash生成的私鑰時,選美會給我'無法加載此密鑰(OpenSSH SSH-2私鑰)'。只是踢,我試過公鑰文件,它說'無法加載此密鑰(不是私鑰)'。當我嘗試添加一個密鑰時,它正在查找的文件是'PuTTY私鑰文件(* .ppk)'。我的私人密鑰由Git Bash生成,沒有文件擴展名,公鑰也有一個pub擴展......另外,我很確定我的私鑰是OpenSSH而不是PuTTY(根據github.com文檔)。 – kentcdodds 2012-04-17 14:10:18

15

使用git-for-windows與GIT_SSH指向plink.exe,打開膩子到服務器並接受主機密鑰(然後殺死膩子會話,甚至不繼續進行登錄)足以爲我解決這個問題。

2

爲@Name(爲了完整性)的帖子添加信息,因爲我今天剛剛(再次)有這個問題。

Putty存儲其已知的SSH主機in a registry key,不存在於〜/ .ssh/known_hosts文件中,如SSH。因此,要使Git與PLink和Pagent協同工作,您只需在遠程Git服務器上啓動Putty會話並接受密鑰即可。這樣,你將不會再有消息。

這是令人不安的,因爲您必須兩次接受SSH密鑰:一個用於SSH服務器,一個用於Putty/Plink/Pagent,但一旦你這樣做,它就像一個魅力。

相關問題