likes
comments
collection
share

一时手痒, 禁用了SSL验证, 导致git pull时弹出git config --global http.sslVerify

作者站长头像
站长
· 阅读数 23

前言

我准备拷贝一份公司SVN仓库的代码, 试过git clone但下载失败, 也没有弹出输入用户名密码之类, 于是乎, 我一时手痒, 使用如下命令全局禁用了SSL(该操作需慎重)

git config --global http.sslVerify false

禁用 SSL 验证会降低连接的安全性,因此不推荐在生产环境中使用

禁用的后果是, 我使用git pull拉取之前仓库A代码时, 电脑弹出git config --global http.sslVerify提示框.

无奈之下, 输入密码, 却发现并非登陆密码.

如何解决该问题呢?

正文

有4种办法解决http.sslVerify弹窗

办法一: 使用 Git 配置存储密码

可以配置Git, 使用缓存或文件来存储密码,从而避免弹出弹窗

使用缓存存储密码

git config --global credential.helper cache

默认情况下,缓存会在 15 分钟后失效,你可以通过设置 cache 参数来改变这个时间,比如缓存 1 小时(3600 秒):

git config --global credential.helper "cache --timeout=3600"

但是我不知道密码呀, 这种方法只能放弃

办法二: 使用环境变量

可以通过设置环境变量来提供 Git 凭据,从而避免弹出弹窗

export GIT_ASKPASS=/bin/echo

办法三: 禁用 osxkeychain 凭据助手

你可以禁用 git-credential-osxkeychain,改为使用其他凭据助手或不使用任何凭据助手

git config --global --unset credential.helper

如果你想改用其他凭据助手,比如 cachestore,使用如下配置:

git config --global credential.helper cache
# 或者
git config --global credential.helper store

但是这个涉及到全局操作, 使用之后会不会引发新的问题?

我并未尝试该解决方案.

办法四: 使用 SSH 代替 HTTPS(推荐)

生成本地SSH密钥

ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

生成完之后, 导航到ssh目录

cd ~/.ssh

在该目录内, 查看公钥内容

cat ~/.ssh/id_rsa.pub

输出的公钥内容类似如下代码

ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAv6C8... your_email@example.com

打开仓库A的网页代码地址, 在如下图位置贴上你的公钥内容

一时手痒, 禁用了SSL验证, 导致git pull时弹出git config --global http.sslVerify

Title会自动填充, 点击Add Key即可

更换仓库A的远程git地址

进入仓库A目录内, 执行如下命令

git remote -v

输入类似

origin  https://github.com/username/repository.git (fetch)
origin  https://github.com/username/repository.git (push)

将远程git仓库的URL地址更换为SSH

git remote set-url origin git@github.com:username/repository.git

再次运行git remote -v, 确认输出如下类似的信息

origin  git@github.com:username/repository.git (fetch)
origin  git@github.com:username/repository.git (push)

至此, 仓库A可使用git pull git push等命令, 再也没有弹出错误提示框.

尾声

如何拉取SVN仓库代码

电脑mac, 需使用如下命令安装SVN

brew install svn

安装完成之后, 使用命令svn checkout SVN仓库代码地址, 即可拉取SVN仓库代码

所以各位小伙伴们一定要慎重使用该命令git config --global http.sslVerify false, 若像我一时手痒, 估计要么采用全局配置, 要么挨个挨个仓库建立ssh连接.

转载自:https://juejin.cn/post/7397331539850739752
评论
请登录