SSL证书被拒绝尝试通过防火墙后的HTTPS访问GitHub


389

我被困在防火墙后面,因此必须使用HTTPS访问我的GitHub存储库。我在Windows XP上使用cygwin 1.7.7。

我尝试将遥控器设置为https://username@github.com/username/ExcelANT.git,但是在提示输入密码时提示我,但输入后什么也没做。 https://username:<password>github.com/username/ExcelANT.git并从头克隆空的仓库,但每次它都会给我同样的错误

错误:SSL证书问题,请验证CA证书是否正确。详细信息:
错误:14090086:SSL例程:SSL3_GET_SERVER_CERTIFICATE:访问https://github.com/username/ExcelANT.git/info/refs时证书验证失败

开机GIT_CURL_VERBOSE=1给我

*关于connect()到github.com端口443(#0)
*尝试207.97.227.239 ... *成功设置证书验证位置:
* CAfile:无
CApath:/ usr / ssl / certs
* SSL证书问题,请验证CA证书还可以。详细信息:
错误:14090086:SSL例程:SSL3_GET_SERVER_CERTIFICATE:证书验证失败
*过期已清除
*正在关闭连接#0
*关于connect()到github.com端口443(#0)
*正在尝试207.97.227.239 ... *成功设置了证书验证位置:
* CAfile:无
CApath:/ usr / ssl / certs
* SSL证书问题,请验证CA证书是否正常。细节:
无错误:14090086:SSL例程:SSL3_GET_SERVER_CERTIFICATE:证书验证失败
*过期已清除
*正在关闭连接#0
错误:SSL证书问题,请验证CA证书是否正常。详细信息:
错误:14090086:SSL例程:SSL3_GET_SERVER_CERTIFICATE:访问https://github.com/username/ExcelANT.git/info/refs时证书验证失败

fatal: HTTP request failed

这是我的防火墙,cygwin还是什么问题?

我没有在Git配置中设置HTTP代理,但是它是一台需要NTLM身份验证而不是基本的ISA服务器,因此除非有人知道如何强制git使用NTLM,否则我会感到困惑。


如果我将http.sslVerify设置为false,则连接是否安全?这是使用的好方法吗?在两者之间,我们使用pfsense防火墙。目前,用户个人资料上的.gitconfig文件为空。
Nullpointer 2015年

Answers:


57

如果要修复证书问题,请跳过此答案。该答案涉及通过防火墙隧道ssh,这是恕我直言,是处理防火墙/代理事物的更好解决方案。

有一种比使用http访问更好的方法,那就是使用github在ssh.github.com服务器的端口443上提供的ssh服务。

我们使用一种称为开瓶器的工具。使用您喜欢的打包工具,CygWin(通过cygwin主页上的设置)和Linux均可使用。对于MacOSX,至少可以从macports购买它或brew。

命令行如下:

$ corkscrew <proxyhost> <proxyport> <targethost> <targetport> <authfile>

proxyhost和proxyport是https代理的坐标。targethost和targetport是要建立隧道的主机的位置。authfile是带有1行的文本文件,其中包含用冒号分隔的代理服务器用户名/密码

例如:

abc:very_secret

使用“正常” ssh协议进行git通信的安装

通过将其添加到此~/.ssh/config技巧中,可以用于普通的ssh连接。

Host github.com
  HostName ssh.github.com
  Port 443
  User git
  ProxyCommand corkscrew <proxyhost> <proxyport> %h %p ~/.ssh/proxy_auth

现在您可以通过ssh-ing到gitproxy来测试它的工作原理

pti@pti-laptop:~$ ssh github.com
PTY allocation request failed on channel 0
Hi ptillemans! You've successfully authenticated, but GitHub does not provide shell access.
       Connection to github.com closed.
pti@pti-laptop:~$

(注意:如果您以前从未登录过github,ssh会要求将服务器密钥添加到已知的主机文件中。如果您偏执,建议将RSA指纹验证为github站点上显示的RSA指纹。上传了您的密钥)。

当您需要使用另一个密钥访问存储库时(例如,将您的私人帐户与专业帐户分开),这种方法会略有不同。

# 
# account dedicated for the ACME private github account 
#
Host acme.github.com
  User git
  HostName ssh.github.com
  Port 443
  ProxyCommand corkscrew <proxyhost> <3128> %h %p ~/.ssh/proxy_auth
  IdentityFile ~/.ssh/id_dsa_acme

请享用!

多年来,我们已经在Linux,Mac和Windows上使用此功能。

如果您愿意,可以在此博客文章中了解更多信息。


我放弃了让它开始工作,但是又重新看了一下,然后开始工作了。将.ssh / config更改为> Host ssh.github.com >User oharab >Hostname ssh.github.com >Port 443 >PreferredAuthentications publickey >IdentityFile ~/.ssh/id_rsa 并使用git clone进行克隆即可git@ssh.github.com:oharab/log4vba.git立即启动并运行。
oharab 2011年

1
我之所以投票,是因为下面的答案更有用,但是不幸的是,即使只是单个情况下的答案,stackoverflow也总是将接受的答案放在首位。
mjaggard

1
无论如何,我都更新了答案,因为我发现通过https代理进行SSL隧道传输仍然比摆弄HTTPS证书或禁用它们并最终获得性能,用户友好性和安全性较低的解决方案更好。好吧,大量的投票证明我错了,但无论如何我还是坚持我的看法。
Peter Tillemans 2013年

523

问题是您的系统上没有安装任何证书颁发机构证书。并且这些证书无法与cygwin的setup.exe安装在一起。

更新:在cygwin中安装Net / ca-certificates软件包(感谢dirkjot)

有两种解决方案:

  1. 实际安装根证书。卷毛家伙从Mozilla提取证书给您

    cacert.pem文件是您要寻找的。该文件包含> 250个CA证书(不知道如何信任此数量的ppl)。您需要下载此文件,将其拆分为单独的证书,然后将它们放入/ usr / ssl / certs(您的CApath)并为其编制索引。

    这是怎么做。使用cygwin setup.exe安装curl和openssl软件包,执行:

    $ cd /usr/ssl/certs
    $ curl http://curl.haxx.se/ca/cacert.pem |
      awk '{print > "cert" (1+n) ".pem"} /-----END CERTIFICATE-----/ {n++}'
    $ c_rehash

    重要提示:要使用它,c_rehash您还必须安装openssl-perl

  2. 忽略SSL证书验证。

    警告:禁用SSL证书验证会带来安全隐患。如果没有验证SSL / HTTPS连接的真实性,恶意攻击者可能会冒充受信任的端点(例如GitHub或其他远程Git主机),并且您将容易受到中间人攻击将其用作解决方案之前,请确保您完全了解安全问题威胁模型。

    $ env GIT_SSL_NO_VERIFY=true git clone https://github...
    

9
您不需要安装curl,只需使用wget:wget -O - http://curl.haxx.se/ca/cacert.pem | awk 'split_after==1{n++;split_a fter=0} /-----END CERTIFICATE-----/ {split_after=1} {print > "cert" n ".pem"}'
Deebster 2011年

38
我知道这是cygwin,但是如果有人使用Centos到达这里,.pem应该放在/ etc / pki / tls / certs中。
2011年

2
不适用于我-但是,我的路径中没有c_rehash。我尝试重新启动外壳。我还不得不mkdir -p / usr / ssl / certs。我想知道我的Cygwin安装是否不同或缺少某些内容?另外,设置GIT_SSL_NO_VERIFY = true然后运行克隆操作fatal: https://code.google.com/.../info/refs not found: did you run git update-server-info on the server?也会导致此错误:也许重新启动后可以工作?
Jeff Axelrod

7
这个答案是错误的。只需安装cygwin ca-certificates软件包即可获取缺少的根证书。为什么这个答案如此之多?
rurban 2012年

32
不要关闭SSL证书验证。这在整个行业的工具和应用程序代码中经常发生。它为您打开了中途进攻的机会。如果您要使用SSL,请正确使用它。
2013年

430

注意:禁用SSL验证会带来安全隐患。当您使用Git通过网络传输数据时,它允许“中间人”攻击。使用此解决方案之前,请确保您完全了解安全隐患。或者更好的是,安装根证书。

一种方法是禁用SSL CERT验证:

git config --global http.sslVerify false

这将阻止CURL验证HTTPS认证。

仅对于一个存储库:

git config http.sslVerify false

17
如果您不想编辑全局设置(例如所有回购),请排除--global
Erin

57
您能补充一下这有多危险吗?
慢性的

26
这是一个可怕的想法。有一个应该验证证书的原因。如果您不验证证书是否可信,那么任何人都可以生成证书,并且您可能会受到中间攻击者的攻击。
马克·凯里

24
不要关闭SSL验证!
2013年

14
对于所有“不这样做”的人:确保这根本不是最安全的方法。但是,根本不使用SSL是更好的选择!因为有些人只运行自己的私有简单git服务器,对他们来说还是不错的。当然,对于任何真正的安全性,它都是不可设置的。最不安全的事情是通过网络发送纯字节。
Peter Stegnar 2014年

109

我希望Git使用更新的证书捆绑包而不替换整个系统使用的证书捆绑包。让Git在我的主目录中使用特定文件的方法如下:

mkdir ~/certs
curl http://curl.haxx.se/ca/cacert.pem -o ~/certs/cacert.pem

现在更新.gitconfig以将其用于对等验证:

[http]
sslCAinfo = /home/radium/certs/cacert.pem

注意我使用的是绝对路径。Git在这里没有路径扩展,因此~没有丑陋的笨拙就无法使用。或者,您可以跳过配置文件,GIT_SSL_CAINFO而是通过环境变量设置路径。

要解决此问题,请设置GIT_CURL_VERBOSE=1。Git正在使用的CA文件的路径将显示在输出中以“ CAfile:”开头的行中。


12
对我来说,这是最好的答案:它在unix上运行(实际上是NetBSD),它仅影响git,而对系统上的其他任何内容都没有影响,并且不需要root / Administrator访问。谢谢!
埃里克

1
完美,甚至可以做得更好。我已/etc/ssl/certs/ca-certificates.crt用此文件替换了我在Ubuntu 8.04 LTS上的旧文件,它神奇地起作用了!
Michael-O

1
@Eric感谢您提到NetBSD,因为这意味着我找到了这个答案。NetBSD有点奇怪。我安装了OpenSSL软件包,但即使这样也无法获取证书,只是一个占位符目录。
原子

+200更棒的是,它也可以在我的Ubuntu机器上使用。无需在git中禁用证书检查,只需执行此快速修复即可。
Colin D Bennett

11
极好的答案,您可以使用以下命令跳过手工编辑〜/ .gitconfig文件:git config --global http.sslCAinfo "$HOME/certs/cacert.pem"
Aron Ahmadia 2013年

41

请注意,为了使我能够正常工作(在CentOS 5.6上安装RVM),我必须运行以下命令:

export GIT_SSL_NO_VERIFY=true

在那之后,将RVM安装程序卷曲为bash的标准安装过程很有效:)


13
与git config相同的效果--global http.sslverify false
Dyno Fu

20
这是极度危险!SSL证书验证的全部要点是防止您的代码通过HTTPS传输时被篡改!禁用它意味着恶意人员可以在您推送和获取代码时在代码中插入漏洞和其他令人讨厌的东西!

如果我将http.sslVerify设置为false,则连接是否安全?这是使用的好方法吗?在两者之间,我们使用的是pfsense防火墙
Nullpointer 2015年

@Ravi该连接在技术上可以正常工作,是的,但这无疑不是一个好主意。如果您的git源和本地计算机都在内部,并且在组织的控制之下,则它可能是可通过的,但根据user456814的评论,禁用验证会使您容易受到MITM攻击。
Doktor J

40

一个非常简单的解决方案: 用git://替换https://

使用git://the.repository代替https://the.repository使用。

我在Windows上使用TortoiseGit遇到了此问题,此问题得以解决。


我猜这行得通,因为它不验证ssl git://。如以上答案中所述,禁用ssl验证存在安全风险。
danijar

5
@danijar起作用的原因是因为它根本不使用SSL。该git://协议使用SSH,它使用SSH公钥和私钥对进行身份验证和加密,而不是SSL证书。

11
@Cupcake git://没有使用SSH。请参阅SSH协议Git协议
nyuszika7h 2014年

@ nyuszika7h哦,对了。我一直感到git://困惑git@github.com:user/project.git这是SCP式语法

31

最受欢迎的答案(由Alexey Vishentsev撰写)有:

问题是您的系统上没有安装任何证书颁发机构证书。并且这些证书无法与cygwin的setup.exe安装在一起。

但是,最后一个断言是错误的(现在,或者一直以来,我都不知道)。

您所要做的就是进入cygwin设置,并包括软件包“ ca-certificates”(位于Net下)。这帮了我大忙。


1
cygwin git错误显示,CAfile: /etc/ssl/ca-bundle.crt而cygwin ca-certificates软件包安装/usr/ssl/certs/ca-bundle.crt。因此,必须进行编辑~/.gitconfig以指定位置:[http]然后sslCAinfo = /usr/ssl/certs/ca-bundle.crt
maxpolk 2013年

@maxpolk:我会创建一个链接,但是效果是一样的。显然,这是cygwin git中的错误,您是否考虑过要加票?sudo ln -s /usr/ssl/certs/ca-bundle.crt /etc/ssl/
2013年

截至2013年5月23日,如果您也碰巧安装了cygwin's,则cygwin git可以在https:上正常工作ca-certificates
bobbogo

我从这个问题来到这里,这表明可以在这里找到答案。但是,链接的答案和此答案都不适用于我。TortoiseSVN继续输出error: SSL certificate problem, verify that the CA cert is OK.
OR Mapper 2013年

我们从软件包管理器中确切地将cygwin安装文件安装在哪里?ca证书是否需要位于Git的bin文件夹中?
221b 2015年

16

我知道原始问题列出了Cygwin,但这是CentOS的解决方案:

curl http://curl.haxx.se/ca/cacert.pem -o /etc/pki/tls/certs/ca-bundle.crt

资料来源:http : //eric.lubow.org/2011/security/fixing-centos-root-certificate-authority-issues/


这对我来说很棒。不过,正如OP建议的那样,您可能应该首先备份原始文件。如果您使用的系统具有较旧的证书,那么当Github更新其证书时,似乎会发生这种情况。
埃文·多诺万

在CentOS 5上,我通过修复了它yum update openssl,该更新还更新了ca-bundle。
raart's

如果要遵循此选项,则应在使用文件之前验证文件的SHA-256哈希值。您可以通过除设置的curl之外的其他方式来获取当前文件sha256sum(例如已经安全设置的另一台计算机上的浏览器),然后将其与的输出进行比较,以确保获得正确的文件文件。sha256sum /etc/pki/tls/certs/ca-bundle.crt
kbolino

16

要在Windows上克隆,同时将SSL设置为false,请执行以下操作:

    git -c http.sslVerify=false clone http://example.com/e.git

如果您要克隆而不会影响全局设置。


14

在CentOS 5.x上,一个简单的yum update openssl更新了openssl软件包,该软件包更新了系统ca-bundle.crt文件并为我解决了问题。

其他发行版也可能如此。


好吃 对于Red Hat linux的旧安装(4.1.2),这对我有用。谢谢!
乔什(Josh)2013年

13

如果您要做的只是在github.com上使用Cygwin git客户端,则有一种更简单的方法,而不必经历下载,提取,转换和拆分证书文件的麻烦。进行如下操作(假设Windows XP和Cygwin和Firefox一起使用)

  1. 在Firefox中,转到github页面(任意)
  2. 单击地址栏上的github图标以显示证书
  3. 单击“更多信息”->“显示证书”->“详细信息”,然后选择层次结构中从最高层开始的每个节点;为每个按钮单击“导出”,然后选择PEM格式:
    • GTECyber​​TrustGlobalRoot.pem
    • DigiCertHighAssuranceEVRootCA.pem
    • DigiCertHighAssuranceEVCA-1.pem
    • github.com.pem
  4. 将以上文件保存在本地驱动器中的某个位置,将扩展名更改为.pem,然后在Cygwin安装中将它们移动到/ usr / ssl / certs(Windows:c:\ cygwin \ ssl \ certs)
  5. (可选)从bash运行c_reshash。

而已。

当然,这只会安装一个证书层次结构,即github需要的证书层次结构。当然,您可以在任何其他站点上使用此方法,而无需安装您不(不必)信任的站点的200证书。


8

如果您使用的是Mac OS X,则可以通过以下方式安装ca-cert-bundle homebrew

$ brew install curl-ca-bundle
$ git config --system http.sslcainfo /usr/local/share/ca-bundle.crt

公式通过以下方式将证书捆绑包安装到您的共享中:

share.install 'ca-bundle.crt'

share方法只是的别名/usr/local/share,而curl-ca-bundle由提供Mozilla。这就是您在许多问题中引用的内容。希望这brew install curl会有所帮助,因为在Mac OS X上如何实现该方法不是很简单。它也不会给您带来很多好处,因为它只是桶装的,不会链接的(运行which curl将始终输出/usr/bin/curl,这是您所附带的默认设置)操作系统)。这篇文章可能也有价值

当然,您需要在安装前禁用SSL homebrew因为它是git repo。只要执行curl在SSL验证期间出错时所说的内容,并:

$ echo insecure >> ~/.curlrc

一旦你homebrew一起安装的curl-ca-bundle,删除.curlrc,并尝试克隆回购了GitHub上。确保没有错误,一切都会顺利进行。

注意:如果您诉诸.curlrc,请在完成测试后将其从系统中删除。该文件可能会导致严重问题,因此请暂时使用它,并要谨慎使用。brew doctor如果您忘记从系统中清除它,将会发出投诉。

注意:如果您更新git的版本,则将需要重新运行此命令,因为系统设置将被清除(它们相对于基于版本的git二进制文件存储)。

因此,运行后:

$ brew update
$ brew upgrade

如果您获得了新版本的git,则只需重新运行即可:

$ git config --system http.sslcainfo /usr/local/share/ca-bundle.crt

然后您会准备就绪。

最后,如果您有新版本的git,请运行:

$ git config -l --system

应该给你一个错误的思路

fatal: unable to read config file '/usr/local/Cellar/git/1.8.2.2/etc/gitconfig'

这是您需要告诉git Mozilla ca-bundle在哪里的提示。

更新:

.curlrc可能是也可能不是您的问题的补救措施。无论如何,无论是否需要手动下载,只要在计算机上安装Mozilla ca-bundle即可。这才是重要的。收到ca捆绑包后,您就可以使用了。只需运行git config命令并将git指向ca-bundle。

更新

我最近不得不添加:

export CURL_CA_BUNDLE=/usr/local/share/ca-bundle.crt.zshenv因为我正在使用,所以将其保存到我的点文件中zsh。该git config选项在大多数情况下都有效,但是当通过SSL(rvm get stable例如)访问github时,我仍然遇到证书问题。@Maverick在评论中指出了这一点,但以防万一有人错过它或认为他们除了运行git config --system....命令外不必导出此环境变量。谢谢,希望对您有所帮助。

更新

它看起来像卷曲-CA-束最近从自制删除。这里有一个建议

您将需要将一些文件放入:

$(brew --prefix)/etc/openssl/certs


1
您也可以尝试以下操作: export CURL_CA_BUNDLE=/usr/local/share/ca-bundle.crt
Maverick

嗨,我遇到了类似的问题(stackoverflow.com/questions/20939105/…),当我尝试安装自制软件时,也会出现相同的问题。在这种情况下我该怎么办?在我的控制台中键入“ git config --system http.sslcainfo /usr/local/share/ca-bundle.crt”会返回“错误:无法锁定配置文件/Applications/Xcode.app/Contents/Developer/usr/etc/ gitconfig:没有这样的文件或目录。感谢您的帮助!
Mathieu 2014年

@Mathieu,这很奇怪。似乎您的系统指向的是相对于XCode的git版本。从终端运行“哪个git”的输出是什么?
A-Dubb 2014年

6

您可以在终端中尝试以下命令:

git config --global http.sslVerify否


5

我使用apt-cyg(类似于apt-get的出色安装程序)修复了此问题,可以轻松下载ca证书(包括Git等):

apt-cyg install ca-certificates

注意:应该首先安装apt-cyg。您可以从Windows命令行执行此操作:

cd c:\cygwin
setup.exe -q -P wget,tar,qawk,bzip2,subversion,vim

关闭Windows cmd,然后打开Cygwin Bash:

wget rawgit.com/transcode-open/apt-cyg/master/apt-cyg
install apt-cyg /bin

这对我不起作用-我仍然遇到相同的错误。
holdenlee 2014年

4

在我有一个狂暴的pi上

pi @ raspbmc:〜$ git clone http://github.com/andreafabrizi/Dropbox-Uploader .git克隆到'Dropbox-Uploader'...错误:访问时SSL CA证书有问题(路径?访问权限?) http://github.com/andreafabrizi/Dropbox-Uploader.git/info/refs致命:HTTP请求失败

所以我

sudo apt-get install ca-certificates

然后

git clone http://github.com/andreafabrizi/Dropbox-Uploader.git  

工作了


4

如果您使用的是基于Debian的操作系统,则只需运行

apt-get install ca-certificates


4

我在Solaris Express 11上也遇到了同样的问题。我花了一段时间,但设法找到了将证书放置在何处。根据/etc/openssl/openssl.cnf,证书的路径为/ etc / openssl / certs。我放置了使用来自Alexey的上述建议生成的证书。

您可以在命令行上使用openssl验证一切是否正常:

openssl s_client -connect github.com:443

3

尝试使用.netrc文件,它将通过https进行身份验证。.netrc在您的主目录中创建一个文件调用,并将其放入其中:

machine github.com login myusername password mypass

有关更多信息,请参见此帖子:

https://plus.google.com/u/0/104462765626035447305/posts/WbwD4zcm2fj


这是证书验证问题,而不是身份验证问题-某些操作系统(包括OP运行的操作系统)的库存列表中没有CA颁发github的新证书。
Charles Duffy 2012年

3

通过暂时禁用Windows cmd中的GIT / curl ssl验证来改进RouMao的解决方案:

set GIT_SSL_NO_VERIFY=true
git config --global http.proxy http://<your-proxy>:443

此解决方案的优点在于,它仅在当前cmd窗口中生效。


3
这是极度危险!SSL证书验证的全部要点是防止您的代码通过HTTPS传输时被篡改!禁用它意味着恶意人员可以在您推送和获取代码时在代码中插入漏洞和其他令人讨厌的东西!

3

你检查时间了吗?

我绝对拒绝使我的git操作不安全,并且在尝试了此处提到的所有内容之后,令我震惊的是,证书未能通过验证的一个可能原因是日期错误(证书到期日期或本地时钟)。

您可以通过date在终端中输入内容来轻松检查。在我的情况下(新的树莓派),本地时钟设置为1970,因此只需简单地ntpdate -u 0.ubuntu.pool.ntp.org修复所有内容即可。对于rPi,我还建议您将以下脚本放入日常cron作业(例如/etc/cron.daily/ntpdate):

#!/bin/sh
/usr/sbin/ntpdate -u 0.ubuntu.pool.ntp.org 1> /dev/null 2>&1

3

从Github生成访问令牌并保存,因为它不会再次出现。

git -c http.sslVerify=false clone https://<username>:<token>@github.com/repo.git

要么,

git config --global http.sslVerify false
git clone https://github.com/repo.git

2

我在必须管理的协作开发平台上配置Git时遇到了同样的问题。

要解决它:

  • 我已经更新了服务器上安装的Curl的发行版。在网站上下载最新版本卷曲的下载页面,然后按照安装程序卷曲的安装程序

  • 取回为服务器提供证书的授权证书。

  • 将此证书添加到curl使用的CAcert文件中。在我的服务器上,它位于中/etc/pki/tls/certs/ca-bundle.crt

  • 通过编辑.gitconfig文件并设置sslcainfo路径,将git配置为使用此证书文件。 sslcainfo= /etc/pki/tls/certs/ca-bundle.crt

  • 在客户端计算机上,您还必须获取证书并配置.gitconfig文件。

希望对您有所帮助。


1

我尝试了一切,最终我查看了hosts文件,并在github上找到了一个随机条目。删除别名解决了该问题

%systemroot%\ system32 \ drivers \ etc \ hosts


1

我只是禁用了SSL证书身份验证,并使用了简单的用户名密码登录,如下所示在此处输入图片说明



0

我需要两件事:

  1. 转到cygwin 设置,并包含软件包“ ca-certificates ”(位于Net下)(如其他位置所示)。

  2. 告诉git在哪里可以找到已安装的证书:

    GIT_SSL_CAINFO = / usr / ssl / certs / ca-bundle.crt GIT_CURL_VERBOSE = 1 git ...

    (不需要详细选项)

    或永久存储选项:

    git配置 --global http.sslCAinfo /usr/ssl/certs/ca-bundle.crt

    git ...


-2

我遇到过同样的问题。证书导入或用于取消设置SSL验证的命令无效。原来是网络代理的过期密码。有代理配置的条目。在Windows用户配置文件中显示的.gitconfig文件中。我只是删除了整个条目,然后又重新开始工作。


-2

在Mac OSX 10.5系统上,我能够使用一种简单的方法来使其工作。首先,运行github程序和测试,这对我来说还可以,表明我的证书确实可以。 https://help.github.com/articles/generating-ssh-keys

ssh -T git@github.com

然后我终于注意到了遥控器的另一个URL格式。我在上面尝试了其他人,但他们没有用。 http://git-scm.com/book/ch2-5.html

git@github.com:MyGithubUsername/MyRepoName.git

一个简单的“ git push myRemoteName”效果很好!


-2

我最近(2014年7月)遇到了类似的问题,并在OS X(10.9.4)上发现“ DigiCert高保证EV根CA”证书已经过期(尽管我还有另一个未过期的证书)。

  1. 开放式钥匙串访问
  2. 在证书中搜索“ DigiCert”
  3. 查看菜单>显示过期的证书

我发现了两个名为“ DigiCert高保证EV根CA”的证书,一个证书于2031年11月到期,一个证书于2014年7月(几天前)过期。删除过期的证书可以为我解决此问题。

希望这可以帮助。


-2

对于使用Msys / MinGW GIT的用户,请添加此

  export GIT_SSL_CAINFO=/mingw32/ssl/certs/ca-bundle.crt 
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.