我想将我的提交推送到Bitbucket存储库但是发生了这个错误:
Fatal: unable to access
'https://myUsername@bitbucket.org/myUsername/myRepository.git/':
Unknown SSL protocol error in connection to bitbucket.org:443
答案 0 :(得分:53)
您可以使用
获取更多信息# Windows
set GIT_CURL_VERBOSE=1
set GIT_TRACE_PACKET=2
# Unix
export GIT_CURL_VERBOSE=1
export GIT_TRACE_PACKET=2
然后尝试git push
。
如果您有代理设置,请仔细检查。
注意:git 2。8(2016年3月)添加了有关错误35的更多信息:
commit 0054045见Shawn Pearce (spearce
)(2016年2月14日)
(Junio C Hamano -- gitster
--于2016年2月24日commit 97c49af合并)
remote-curl
:在SSL设置失败时包含curl_errorstr
对于
curl
错误35(CURLE_SSL_CONNECT_ERROR
),用户需要存储在CURLOPT_ERRORBUFFER
中的其他文字来调试连接未启动的原因。
这是curl_errorstr
内的http.c
,因此如果邮件非空,请将其包括在内。
另请查看common causes for that message:
如果它之前正在工作,而今天没有工作,则可能在BitBucket端SSL SSL私钥已过期(见下文,原因#3),但这似乎不是这里的情况(证书有效期至2014年3月12日。)
关闭如下所示的请求会导致出现“未知SSL协议”错误:
curl --sslv2 https://techstacks-tools.appspot.com/
为什么呢?那么,在这种情况下,这是因为techstacks工具站点不支持SSLv2,因此产生curl(35)错误。
您可能尝试使用网站配置为拒绝的ssl密码连接到网站 例如,通常在面向客户的ssl加密站点上禁用匿名密码。 (我们中的许多人在任何SSL加密的网站上设置了一揽子拒绝政策 - 无论其目的如何。)
以下命令字符串"可以"也会导致curl(35)错误:
curl --ciphers ADH-RC4-MD5 https://some_web_site.some_domain.com/
不幸的是,你可以从curl获得的错误响应类型在很大程度上取决于ssl服务器。在某些网站上,您会收到未知的SSL协议错误,但在我的techstacks-tools网站上,我得到:
curl: (35) error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure
感谢Google,因为这个特定错误比我工作的网站产生的描述更具描述性,因为这至少告诉您ssl套接字已启动,但由于握手失败,套接字永远无法完成。< / p>
尝试使用网站支持的密码连接到网站。不确定使用哪种密码?好吧,让我介绍一下cryptonark ssl cipher tester ...
我今天早些时候遇到过这个与旧的WebSeAL网站合作的人 在IBM GSKit中,您可以指定私钥密码的有效时间。到达某个特定日期后,您仍然可以启动webseal并在端口443上侦听(或者将您的https-port值设置为),但您将无法成功协商SSL会话。
在今天的情况下,旧的WebSEAL实例使用长期过期的kdb文件和长期过期的私钥密码。一旦替换为正确的,更新的版本,一切都会再次发挥作用。
某些ISP和DNS提供商喜欢拦截您失败的DNS查询,以便将您重定向到搜索引擎结果样式页面,为您提供替代网址或者&#34;您的意思是......?&# 34;反查询结果 如果您看到如下错误:
error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol,
可能是由于您错误地键入了主机名或者主机名尚未在您的DNS中提交。您可以使用简单的&#34;
host
&#34;来验证这一点。或&#34;nslookup
&#34;。
注意(2015年8月):Git 2.6 +(2015年第3季度)将允许明确指定SSL版本:
http
:添加对指定SSL版本的支持
commit 01861cb见Elia Pinto (devzero2000
)(2015年8月14日)
帮助:Eric Sunshine (sunshineco
)。
(由Junio C Hamano -- gitster
--合并于commit ed070a4,2015年8月26日)
http.sslVersion
协商SSL连接时使用的SSL版本,如果要强制使用默认值 可用和默认版本取决于libcurl是针对NSS还是OpenSSL构建的,以及正在使用的加密库的特定配置。在内部设置了
CURLOPT_SSL_VERSION
&#39;选项;有关此选项的格式以及支持的ssl版本的更多详细信息,请参阅libcurl文档 实际上,此选项的可能值为:
- SSLV2
- SSLV3
- 使用TLSv1
- tlsv1.0
- tlsv1.1
- TLSv1.2工作
可以被&#39;
GIT_SSL_VERSION
&#39;覆盖。环境变量。
要强制git使用libcurl的默认ssl版本并忽略任何显式http.sslversion
选项,请设置&#39; GIT_SSL_VERSION&#39;到空字符串。
答案 1 :(得分:41)
根据bitbucket knowledgebase,它也可能是由于存储库的所有者超出了计划限制。
如果你向下看页面,似乎也可以通过使用太旧的git版本来触发此错误(目前需要1.7)。
答案 2 :(得分:19)
设置以下git设置为我解决了这个问题
git config --global --add http.sslVersion tlsv1.0
我猜测公司代理服务器不喜欢默认的加密协议。
答案 3 :(得分:14)
在许多情况下,它与代理问题有关。 如果是这样,只需配置你的git代理
git config --global http.proxy HOST:PORT
答案 4 :(得分:5)
此错误也会在服务器关闭时出现。技术支持部门就此问题发送电子邮件:
“我们遇到了影响网站流量的中断,因为 以及通过HTTPS的Mercurial和Git流量。 SSH没有受到影响 虽然。请随时查看此页面以获取更多信息:
所以稍后再试,它可以自行解决。为我做了
答案 5 :(得分:5)
我在公司代理人身后得到了这个。
解决方案:
git config http.sslVerify "false"
答案 6 :(得分:1)
我遇到了同样的问题。使用最后一个版本的git而没有代理。
我修好了它:
更多信息: create the key
答案 7 :(得分:1)
我在Android Studio 2.1.3中使用版本控制时遇到了这个问题,我面临的情况如下:
1-我打开IDE并点击“更新/拉动”图标(Ctrl + T)
2-它没有询问主密码而且失败了,给了我这个错误:
Unknown SSL protocol error in connection to bitbucket.org:443
3-我试图获取存储库(右键单击&gt; git&gt;存储库&gt;获取)
4-它问我主密码,我输入了
5-它试图获取但它一次又一次地失败
6-我重启 Android工作室
7-我试图获取存储库(右键单击&gt; git&gt;存储库&gt;获取)
8-它问我主密码,我输入了
9-现在事情确定,一切都很顺利
结论:
也许Android Studio在任何git操作之前首先需要Master密码,否则即使它稍后要求使用Master密码也会失败,我不知道,这是发生在我身上的情况
答案 8 :(得分:0)
拥有2台电脑,
头号是我的企业实验室顶层通过VPN连接到我们的企业网络。这就像是在大型防火墙和一堆路由器背后的公司内部,民用,内部和外部(甚至是电信)在网络和防火墙上摆弄,并且为了伸手可及,我必须提供诸如代理用户和密码,即使这样,有时它工作,有时不工作。
即。我可以使用SVN JSVN MAVEN下载,ANT下载通过防火墙,我可以使用git clone http://git ... repos。
但我不能做git clone https://git ... repo。 我这个最新的案例我得到了这个错误。
我现场的第二台计算机是我家里的小实验室,没有什么特别的,通过WAN连接到www并使用上面提到的所有工具加上git clone https://git。回购工作就像嗅到没有特别的东西。
结论:坐在“某种程度上管理的防火墙”背后通常是麻烦的原因。为了解决这个问题,请带上你的小型无保护实验室顶部并在家中建立www连接,如果它运行,不要浪费时间与你的安全人员,他们将工作数周,除非知道为什么它不起作用你的case,也许你可以用便携式驱动器共享克隆的git repo。
约瑟夫 - 在这种情况下浪费时间变老; - )答案 9 :(得分:0)
我使用 tortoiseGit 。我有同样的问题。然后在推送设置中,我取消选中“ autoload putty key ”,尝试推送,然后我再次检查,然后推送,并且它有效。但说真的,我不知道为什么。
答案 10 :(得分:0)
执行
nc -v -z <git-repository> <port>
你的出局看起来应该是
"Connection to <git-repository> <port> port [tcp/*] succeeded!"
如果你得到
connect to <git-repository> <port> (tcp) failed: Connection timed out
您需要修改~/.ssh/config
文件。添加如下内容:
Host example.com
Port 1234
答案 11 :(得分:0)
我目前偶尔出现的公司HTTP代理会出现此错误。我可以通过在浏览器中访问bitbucket.org然后重新命令来修复它。不知道为什么会这样,但它确实为我解决了(至少暂时)。
答案 12 :(得分:0)
如果您遇到“与bitbucket.org:443相关的未知SSL协议错误”并且您在中国,可能github暂时被防火墙阻止。您可以尝试使用VPN,这将有用。祝你好运!
答案 13 :(得分:0)
当我推出大量的资源(接近700Mb)时,这个错误发生在我身上,然后我尝试将其部分推出并成功推送。
答案 14 :(得分:0)
我遇到了同样的问题,尝试了所有更改此处提供的SSL设置。如果您在企业网络中并使用像Gerrit这样的工具中使用的ssh密钥。 1.获取你的密钥, 2.访问Bitbucket并导航至Profile&gt;&gt;设置&gt;&gt; SSH密钥&gt;&gt;添加密钥。
添加ssh键后,尝试再次按下。
答案 15 :(得分:0)
我能够通过运行
解决它CookieAuthenticationHandler
然后看到我有一行:
file:c:/Users/user/.gitconfig http.sslversion = sslv3
我编辑了文件c:/Users/user/.gitconfig,并删除了[http]行和sslversion = sslv3行,并为我修复了该文件。