在mac git clone over https上无法进行身份验证

时间:2013-11-01 03:44:49

标签: macos git osx-mavericks

在使用Mavericks的mac mini上,当我尝试从私有git服务器git clone时,我遇到了身份验证问题。我已经使用同一台服务器在Windows和Ubuntu上安装和配置了几次git,之前没有遇到过这种问题。我不知道下一步该尝试什么。

症状:

git clone https://username@git.example.com:8448/git/libs/project.git
Cloning into 'project' ...
Password for 'https://username@git.example.com:8448': [1] note
fatal: Authentication failed for 'https://username@git.example.com: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 = username@example.com

我在设置客户端证书时收到以下文件,我将其放在名为〜/ 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命令,例如:

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之后就像上面的步骤一样,在我执行'git clone https'时在其他系统上它就可以了。在安装了Xcode命令行工具的OS X Mavericks上,git无法进行身份验证。

我做错了什么?

提前致谢。

修改

我以为我会添加这条信息。服务器使用的是自签名证书,或者来自无权限的证书。这就是我将http.sslVerify设置为false的原因。

以下是详细的克隆命令。除了auth文件夹位置外,Linux和Mac上的设置是相同的。 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

3 个答案:

答案 0 :(得分:1)

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

sudo port install git-core

答案 1 :(得分:0)

sslVerify false?然后通过curl完全停用证书验证。

您可以通过以下方式获得更多详细信息:

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

检查其他系统是否没有%HOME%/_netrc(Windows)或~/.netrc(unix),其中包含您的凭据,这可以解释为什么您不必在那里输入密码

在您的情况下,/etc/ssl/certs/ca-certificates.crt中的CA和其他根证书可能在mac上不存在。<path/to/git/bin/curl-ca-bundle.crt>。 尝试将该Linux文件的内容添加到 sudo port install git-core 文件的客户端git cert文件中,有点像this solution

OP sysrpl报告虽然没有必要,因为sysrpl必须执行以下操作:

{{1}}

更新/重置Mac上的git安装。

答案 2 :(得分:0)

当您尝试使用 git clone 并且提示输入密码时,请在此处提供 git 个人访问令牌

这将解决问题。