当前位置:   article > 正文

mac电脑git clone项目时报错证书过期和权限被拒绝_credential.helper=osxkeychain

credential.helper=osxkeychain

mac电脑使用git clone命令克隆项目时,一开始一直提示证书过期

SSL certificate problem: certificate has expired 
  • 1

执行以下代码关掉验证后,解决了这个问题

  1. 找到git目录 Git\git-cmd
  2. 输入命令跳转到bin目录,cd bin
  3. 输入命令运行git.exe执行关掉 SSL验证
git config --global http.sslVerify false
  • 1

之后就不提示这个错误了,但是克隆又一直提示权限被拒绝

remote: HTTP Basic: Access denied
Authentication failed for 'https://....'
  • 1
  • 2

将id_rsa等文件删除后也不管用,经同事测试,账号密码在window上可以克隆成功,那就证明肯定是mac电脑环境的问题啦!

既然我们已经删除了id_rsa文件,那按理应该说git的ssh权限就不存在了,但是有没有可能它被存储起来了呢?经查阅,发现还真就是这个缓存问题

Git 工具 - 凭证存储

凭证存储
如果你使用的是 SSH 方式连接远端,并且设置了一个没有口令的密钥,这样就可以在不输入用户名和密码的情况下安全地传输数据。 然而,这对 HTTP 协议来说是不可能的 —— 每一个连接都是需要用户名和密码的。 这在使用双重认证的情况下会更麻烦,因为你需要输入一个随机生成并且毫无规律的 token 作为密码。
幸运的是,Git 拥有一个凭证系统来处理这个事情。 下面有一些 Git 的选项:

  • 默认所有都不缓存。 每一次连接都会询问你的用户名和密码。
  • “cache” 模式会将凭证存放在内存中一段时间
    密码永远不会被存储在磁盘中,并且在15分钟后从内存中清除。
  • “store” 模式会将凭证用明文的形式存放在磁盘中,并且永不过期
    这意味着除非你修改了你在 Git 服务器上的密码,否则你永远不需要再次输入你的凭证信息。 这种方式的缺点是你的密码是用明文的方式存放在你的home 目录下。
  • 如果你使用的是 Mac,Git 还有一种
    osxkeychain” 模式,它会将凭证缓存到你系统用户的钥匙串中
    这种方式将凭证存放在磁盘中,并且永不过期,但是是被加密的,这种加密方式与存放 HTTPS 凭证以及 Safari 的自动填写是相同的。
  • 如果你使用的是 Windows,你可以安装一个叫做 “winstore” 的辅助工具。 这和上面说的 “osxkeychain”
    十分类似,但是是使用 Windows Credential Store 来控制敏感信息。
    可以在https://gitcredentialstore.codeplex.com 下载。

所以,我们删掉这个凭证存储就可以解决这个问题啦!经测试,发现以下步骤可以成功解决:

1、首先使用git config --list查看配置,查看里面的credential.helper
credential.helper=osxkeychain 
  • 1

在这里插入图片描述

如果是osxkeychain模式,那么它会将凭证缓存到你系统用户的钥匙串中

2、删除mac中的钥匙串

使用以下步骤删除对应的地址存放的钥匙串
如果由于某些原因(如忘记了密码)导致钥匙串不可访问,您可以删除它并创建一个新钥匙串。要删除钥匙串

  • 打开“钥匙串访问”,它位于“应用程序”文件夹的“实用工具”文件夹中。 如果钥匙串是隐藏的,请选取“显示”>“显示钥匙串”。
  • 在“钥匙串”列表中选择一个钥匙串。 选取“文件”>“删除钥匙串(钥匙串名称)”。
  • 如果您想要删除与此钥匙串相关联的文件,请点按“删除引用和文件”,否则请点按“删除引用”。

在这里插入图片描述
之后就可以正常克隆啦~
在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小小林熬夜学编程/article/detail/207905
推荐阅读
相关标签
  

闽ICP备14008679号