mac电脑使用git clone命令克隆项目时,一开始一直提示证书过期
SSL certificate problem: certificate has expired
执行以下代码关掉验证
后,解决了这个问题
- 找到git目录 Git\git-cmd
- 输入命令跳转到bin目录,cd bin
- 输入命令运行git.exe执行关掉 SSL验证
git config --global http.sslVerify false
之后就不提示这个错误了,但是克隆又一直提示权限被拒绝
remote: HTTP Basic: Access deniedAuthentication failed for 'https://....'
将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
如果是osxkeychain模式,那么它会将凭证缓存到你系统用户的钥匙串中
2、删除mac中的钥匙串
使用以下步骤删除对应的地址存放的钥匙串
如果由于某些原因(如忘记了密码)导致钥匙串不可访问,您可以删除它并创建一个新钥匙串。要删除钥匙串
:
- 打开“钥匙串访问”,它位于“应用程序”文件夹的“实用工具”文件夹中。 如果钥匙串是隐藏的,请选取“显示”>“显示钥匙串”。
- 在“钥匙串”列表中选择一个钥匙串。 选取“文件”>“删除钥匙串(钥匙串名称)”。
- 如果您想要删除与此钥匙串相关联的文件,请点按“删除引用和文件”,否则请点按“删除引用”。
之后就可以正常克隆啦~
来源地址:https://blog.csdn.net/weixin_38318244/article/details/131048865