2011-06-14 48 views
5

我能夠將cntlm(請參閱其sourceforge project)設置爲我們的公司代理,瀏覽器可以通過它進行工作。在http和https上。
但是當我嘗試運行git clone -v https://github.com/spraints/git-tfs.git時,它發送了幾個初始包並掛起。結果.git目錄大約是14kb。通過Cntlm進行代理:爲什麼git clone會掛起?

,當我通過直接設置它在混帳相反:

git config --global http.proxy http://domain\\\login:[email protected]:8088 

一切正常。

你有什麼建議嗎?
或者可能有一些提議如何將git連接到存儲庫而不需要在明文配置中輸入密碼?

回答

6

現在看來,這是在Cntlm了一個錯誤:http://sourceforge.net/tracker/?func=detail&aid=3106663&group_id=197861&atid=963162

可惜。

UPD:剛剛發佈的0.92版本正確處理這種情況。至少作者聲稱如此:)

UPD2: 0.92.3作品,我checked

+0

錯誤報告的好結果。 +1 – VonC 2011-06-14 18:18:16

+0

順便說一句,有一個類似的本地代理稱爲ntlmaps在這種情況下工作。可能值得一試...但現在不行。我今天充滿了代理:) – 2011-06-14 19:22:39

+0

+1的博客文章。 – 2012-12-10 23:23:12

1

當在這個過程中有一些I/O預期時,Git通常會掛起。在你的情況下,用戶名和密碼。
一旦您設置http.proxy(或%http_proxy% like in this question),混帳應該嘗試在$HOME/.netrc(或%HOME%/_netrc on Windows

這些登錄信息的登錄信息仍然是明文,但只有你可讀的文件。如果https協議有效,那麼該信息將不會在網絡上以純文本格式顯示。

+0

是的,我發佈之前讀過這個問題,謝謝。這實際上是我的最後手段 - 在從msysgit運行git的sh.exe之前,在腳本中讀取並設置HTTP_PROXY。所以我不會以明文形式輸入密碼,但每次我需要git時都會輸入密碼。 Cntlm允許我在其配置中設置密碼哈希值,這對我來說要好得多,因爲我需要在不僅擁有管理員權限的域中的Windows窗口框中設置git, – 2011-06-14 15:17:08

+0

@Ivan:所以'_netrc'對你來說不是一個好的解決方案?我一直都在使用它,除了在外部驅動器(不是我的計算機上的驅動器)中定義'%HOME%'(在Windows上未默認定義),它受保護爲只讀由我。這樣,即使我必須更換工作站,我仍然可以訪問我的'%HOME%/ _ netrc'文件。 – VonC 2011-06-14 15:20:09

+0

好吧,無論如何,域管理員將有權訪問此文件夾。這是有點偏執,我知道:)但我沒有不同的密碼的一切和任何地方,所以寧願永遠不要存儲他們的明文。 – 2011-06-14 15:34:57