在 mac 上通过 https 进行 git 克隆无法进行身份验证

问题描述 投票:0回答:4

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

症状:

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 的文件夹中:

用户名.cer
用户名.p12
用户名.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
macos git osx-mavericks
4个回答
3
投票

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

这将解决问题。


1
投票

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

sudo port install git-core

0
投票

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

您可以通过以下方式了解更多详细信息:

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

检查其他系统是否没有包含您的凭据的

%HOME%/_netrc
(Windows) 或
~/.netrc
(unix),这可以解释为什么您不必在那里输入密码。

就您而言,Mac 上可能不存在 /etc/ssl/certs/ca-certificates.crt 中 Linux 中使用的

CA
和其他根证书。
尝试将该 Linux 文件的内容添加到
<path/to/git/bin/curl-ca-bundle.crt>
文件上客户端的 git cert 文件中,有点像 此解决方案

OP sysrpl 报告说这是不必要的,因为 sysrpl 必须执行以下操作:

sudo port install git-core

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


0
投票
此严重身份验证错误的根本原因是由于缺少

APP密码(在Bitbucket中)或Token(在GitHub中)。要解决此问题,您应该建立 APP 密码或生成令牌(取决于您选择的提供商)。

当提示输入密码时,请使用此令牌或应用程序密码。

您可以按如下方式创建此凭据(生成后,将其保存在安全的地方):

  1. 对于 Bitbucket

    导航至

    Bitbucket 设置

    输入

    应用程序密码标签

    设置应用密码的权限。添加对

    Account

     的读取权限,
    
    Workspace membership
    Projects
    Repositories
    Pull requests

单击

创建

安全地复制并保存您的应用程序密码。

  1. 对于 GitHub,请访问 https://github.com/settings/personal-access-tokens/new 生成新令牌。
© www.soinside.com 2019 - 2024. All rights reserved.