2011-09-20 126 views
5

我啓動Ubuntu Linux操作系統,打開一個終端,修改一些代碼,並愉快地執行混帳推掛起後幾個推

git push origin master 

然而,一段時間後(有時30分鐘,有時幾個小時),完全相同的命令將掛起(根本沒有輸出)。

當我嘗試

ssh -v [email protected] 

我得到如下回應:

OpenSSH_5.8p1 Debian-1ubuntu3, OpenSSL 0.9.8o 01 Jun 2010 
debug1: Reading configuration data /home/avitus/.ssh/config 
debug1: Reading configuration data /etc/ssh/ssh_config 
debug1: Applying options for * 
debug1: auto-mux: Trying existing master 

然後它再次掛起。看起來我已經不再使用SSH來連接到另一臺服務器了。任何想法如何解決這一問題?每次都需要重新啓動纔會導致死機。

更新:

的問題消失了,當我刪除以下兩行(爲了便於連接共享)從的〜/ .ssh/config中

ControlMaster auto 
ControlPath /tmp/ssh_mux_%h_%p_%r 
+0

你有沒有在任何時候建立另一個SSH連接到GitHub作爲控制主? (這是一種共享現有連接的機制。)該調試消息看起來像是發現了一個現有的SSH控制大師 –

+0

Mark - 我認爲問題與您提到的一樣,因爲當我刪除兩行時,上面的所有內容開始工作再次。不過,我只有一個用戶連接到這臺機器上的Git。 – Andy

+0

太棒了,我很高興聽到你有這個工作。我現在已經添加了一個答案。 –

回答

2

剛剛從一個評論把我的猜測到答案...

ssh -v輸出中的最後一行:

debug1: auto-mux: Trying existing master 

...告訴您SSH已配置爲查找現有的SSH連接以重新使用。我懷疑這種現有的連接最終會以某種方式卡住,這將解釋你所看到的行爲。

此連接共享設施在the ssh_config(5) man pageControlMaster部分進行了說明。本質上,「主」SSH會話在/tmp中創建一個套接字,以後的會話可以連接到,而不必再次通過可能的長度認證步驟。你有這個選項設置爲auto,這意味着這個套接字將被自動創建和使用。