赞
踩
mac电脑使用git clone命令克隆项目时,一开始一直提示证书过期
SSL certificate problem: certificate has expired
执行以下代码关掉验证
后,解决了这个问题
git config --global http.sslVerify false
之后就不提示这个错误了,但是克隆又一直提示权限被拒绝
remote: HTTP Basic: Access denied
Authentication failed for 'https://....'
将id_rsa等文件删除后也不管用,经同事测试,账号密码在window上可以克隆成功,那就证明肯定是mac电脑环境的问题啦!
既然我们已经删除了id_rsa文件,那按理应该说git的ssh权限就不存在了,但是有没有可能它被存储起来了呢?经查阅,发现还真就是这个缓存问题
。
凭证存储
如果你使用的是 SSH 方式连接远端
,并且设置了一个没有口令的密钥,这样就可以在不输入用户名和密码的情况下安全地传输数据。 然而,这对 HTTP 协议来说是不可能的 —— 每一个连接都是需要用户名和密码的。 这在使用双重认证的情况下会更麻烦,因为你需要输入一个随机生成并且毫无规律的 token 作为密码。
幸运的是,Git 拥有一个凭证系统
来处理这个事情。 下面有一些 Git 的选项:
默认所有都不缓存
。 每一次连接都会询问你的用户名和密码。内存中一段时间
。永不过期
。osxkeychain
” 模式,它会将凭证缓存到你系统用户的钥匙串中
。存放在磁盘中
,并且永不过期
,但是是被加密的,这种加密方式与存放 HTTPS 凭证以及 Safari 的自动填写是相同的。所以,我们删掉这个凭证存储就可以解决这个问题啦!经测试,发现以下步骤可以成功解决:
git config --list
查看配置,查看里面的credential.helper
项credential.helper=osxkeychain
如果是osxkeychain模式,那么它会将凭证缓存到你系统用户的钥匙串中
使用以下步骤删除对应的地址存放的钥匙串
如果由于某些原因(如忘记了密码)导致钥匙串不可访问,您可以删除它并创建一个新钥匙串。要删除钥匙串
:
- 打开“钥匙串访问”,它位于“应用程序”文件夹的“实用工具”文件夹中。 如果钥匙串是隐藏的,请选取“显示”>“显示钥匙串”。
- 在“钥匙串”列表中选择一个钥匙串。 选取“文件”>“删除钥匙串(钥匙串名称)”。
- 如果您想要删除与此钥匙串相关联的文件,请点按“删除引用和文件”,否则请点按“删除引用”。
之后就可以正常克隆啦~
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。