2013-11-01 141 views
2

在與小牛的Mac mini上,我在嘗試從私有git服務器克隆克隆時出現身份驗證問題。我已經在Windows和Ubuntu上用同一臺服務器安裝並配置好幾次git,並且之前沒有這種問題。我對下一步嘗試的方式感到不知所措。在mac git通過https克隆無法進行身份驗證

症狀:

git clone https://[email protected]:8448/git/libs/project.git 
Cloning into 'project' ... 
Password for 'https://[email protected]:8448': [1] note 
fatal: Authentication failed for 'https://[email protected]:8448/git/libs/project.git' 

[1]我不是問這個在其他系統上。我相信我已經配置我的git客戶端不要求密碼。沒有密碼我提供擅長此提示

我有這樣我的〜/的.gitconfig:

[http] 
     sslKey = /Users/macuser/auth/username.key 
     sslCert = /Users/macuser/auth/username.pem 
     sslVerify = false 
[user] 
     name = username 
     email = [email protected] 

我建立我放在一個文件夾名爲我的客戶證書時收到下列文件〜/ AUTH:

username.cer
username.p12
username.pem
ca.cer

我跑這個命令生成密鑰文件:

openssl rsa -in /Users/macuser/auth/username.pem -out /Users/macuser/auth/username.key 

然後我跑混帳配置命令如:

git config --global http.sslKey /Users/macuser/auth/username.key 
git config --global http.sslCert /Users/macuser/auth/username.pem 
git config --global http.sslVerify false 

配置混帳就像上面的步驟,就當我做其他系統後一個'git克隆https'它只是起作用。在安裝了Xcode命令行工具的OS X Mavericks上,git無法進行身份驗證。

我在做什麼錯?

在此先感謝。

編輯:

我以爲我想補充這條信息。服務器正在使用自簽名證書,或者來自無權限的證書。這就是爲什麼我將http.sslVerify設置爲false。

以下是詳細的克隆命令。 Linux和Mac上的設置相同,保存爲auth文件夾位置。 Linux版本成功,而Mac版本失敗。

http://cache.codebot.org/stackoverflow/linux-git-works.txt
http://cache.codebot.org/stackoverflow/mac-git-fails.txt

答:

sudo port install git-core 
+0

從你提供的,你是在Linux和Mac上的Git 1.8.3.4使用Git 1.8.3.2日誌,所以這些都是非常接近,而Git的更新日誌不建議任何可疑的變化,可能是負責對於你觀察到的不同行爲。那麼curl或libcurl怎麼樣(我不確定Git如何使用curl)?你在兩臺機器上使用哪個版本? – herzbube

回答

1

解決方案是使用macports版本的git,而不是使用Xcode命令行工具附帶的版本。

sudo port install git-core 
0

sslVerify false?然後,您通過curl徹底取消激活證書驗證。

你可以有更多的細節:

GIT_CURL_VERBOSE=1 git clone https://... 

檢查其它系統沒有%HOME%/_netrc(Windows)或~/.netrc(UNIX)在它的憑據,這可以解釋爲什麼你不」不必在那裏輸入密碼。

對於您的情況,有可能CA和其他在Linux中使用的的根證書在mac上不存在。
嘗試將該Linux文件的內容添加到您的文件的客戶端上的git cert文件中,有點像在this solution中。

OP sysrpl報告,雖然這是沒有必要的,因爲sysrpl不得不做:

sudo port install git-core 

更新/重置Mac上的混帳安裝。

+0

這裏有兩個詳細的輸出。一個來自克隆工作的Linux,另一個來自我的Mac系統克隆失敗的地方。兩者都具有相同的git配置: http://cache.codebot.org/stackoverflow/linux-git-works.txt http://cache.codebot.org/stackoverflow/mac-git-fails.txt – sysrpl

+0

@ sysrpl「在'.netrc'文件中找不到主機'git.example.com';使用默認值」:如果您知道用戶名應該在'git.example.com'上有密碼,那麼定義一個'.netrc '(如http://stackoverflow.com/a/6031266/6309)。如果不是,只需從url中刪除'username'(假設有一個匿名訪問,如http://thread.gmane.org/gmane.comp.version-control.git/204286)。 – VonC

+0

@sysrpl注意:您的'cache.codebot.org'日誌都是相同的... – VonC

相關問題