Windows/MacOS端Git克隆SSH失败、SSL证书报错问题咨询
问题原因
两类报错的根因非常明确:
- SSH克隆报仓库不存在:SSH连接本身是正常的(已经能显示登录横幅),问题出在URL路径写法错误。当前命令里的
/clientes/sample/project.git是系统级绝对路径,Git会直接去服务端操作系统的根目录下查找对应仓库,而实际仓库要么存放在SSH登录用户的家目录下,要么存放在Git服务专属的存储目录,根本不在系统根路径,自然会提示找不到仓库。 - Mac端HTTPS克隆报SSL证书过期:本地Git引用的CA根证书包版本过旧,没有收录服务端SSL证书的信任根。
解决方法
修复SSH克隆报错(Windows、Mac通用)
两种写法选一种即可,优先推荐第一种:
用SCP风格URL克隆(适配非默认SSH端口的最稳妥写法)
先编辑本机SSH配置文件,固定Git服务的连接参数,不用每次克隆都输端口:- Windows路径:
C:\Users\你的实际用户名\.ssh\config - Mac路径:
~/.ssh/config
在文件末尾追加如下配置:
Host gitlab.example.com HostName gitlab.example.com Port 17177 User user保存配置后,直接执行不带开头斜杠的SCP格式克隆命令即可:
git clone gitlab.example.com:clientes/sample/project.git这种写法会自动在登录用户的家目录下查找对应仓库路径,和HTTPS可访问的路径规则完全一致。
- Windows路径:
保留ssh://格式的写法
如果一定要用ssh://前缀的URL,需要在路径前加~/标识从登录用户家目录开始查找,正确命令如下:git clone ssh://user@gitlab.example.com:17177/~/clientes/sample/project.git如果上面的命令还是报错,先手动执行
ssh user@gitlab.example.com -p 17177登录服务端,执行find / -name "project.git"找到仓库的实际绝对路径,把命令里的路径替换成查到的全路径即可。
修复Mac端HTTPS SSL报错
执行两条命令更新本地CA证书库即可解决:
brew install ca-certificates git config --global http.sslCAInfo $(brew --prefix)/etc/ca-certificates/cert.pem
如果是用Mac系统自带/Xcode集成的Git,先执行xcode-select --install升级最新命令行工具,同步更新系统内置的根证书库。
内容的提问来源于stack exchange,提问作者jstuardo
相关产品推荐
相关产品推荐

