在mac上通过https克隆git无法验证

dkqlctbz  于 2023-01-28  发布在  Git
关注(0)|答案(4)|浏览(303)

在Mac mini上,当我尝试从一个私有的git服务器进行git克隆时,我遇到了认证问题。我已经在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。
以下是详细的克隆命令。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
lo8azlld

lo8azlld1#

当你尝试使用git clone时,如果它提示输入密码,请在这里提供git个人访问令牌
就能解决问题了。

svmlkihl

svmlkihl2#

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

sudo port install git-core
um6iljoc

um6iljoc3#

sslVerify false-然后完全停用curl的证书验证。
您可以通过以下方式获得更多详细信息:

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

检查其他系统是否没有%HOME%/_netrc(Windows)或~/.netrc(UNIX)包含您的凭据,这将解释为什么您不必在那里输入密码。
在您的情况下,/etc/ssl/certs/ca-certificates.crt中的CA和Linux中使用的其他根证书可能在mac上不存在。
尝试将该Linux文件的内容添加到客户端的git cert文件中的**<path/to/git/bin/curl-ca-bundle.crt>**文件中,有点像this solution
但是OP sysrpl报告说没有必要,因为sysrpl必须执行以下操作:

sudo port install git-core

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

vyswwuz2

vyswwuz24#

请使用GitHub访问令牌来解决此问题,而不要使用GitHub帐户密码。

相关问题