“无法打开git-upload-pack” - 在Eclipse IDE中克隆项目

时间:2018-02-28 19:11:45

标签: eclipse github egit

我正在Eclipse IDE中的Github中复制我的项目。 输入所有访问数据后,会发生以下错误:

  

https://github.com/“公司名称”/“PROJECTNAME”.git:无法打开git-upload-pack

我已添加 http.sslVerify = false - 无法正常工作

我配置了 RSA密钥 - 无法正常工作

我使用:Windows 10 / Java 7 / Eclipse Luna Luna Service Release 2(4.4.2)

错误的更多细节

org.eclipse.jgit.api.errors.TransportException: 
https://github.com/"COMPANYNAME"/"PROJECTNAME".git: cannot open git-upload-pack
at org.eclipse.jgit.api.LsRemoteCommand.call(LsRemoteCommand.java:196)
at 
org.eclipse.egit.core.op.ListRemoteOperation.run(ListRemoteOperation.java:99)
at org.eclipse.egit.ui.internal.clone.SourceBranchPage$8.run(SourceBranchPage.java:324)
at org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:122)
Caused by: org.eclipse.jgit.errors.TransportException: https://github.com/"COMPANYNAME"/"PROJECTNAME".git: cannot open git-upload-pack
at org.eclipse.jgit.transport.TransportHttp.connect(TransportHttp.java:521)
at org.eclipse.jgit.transport.TransportHttp.openFetch(TransportHttp.java:309)
at org.eclipse.jgit.api.LsRemoteCommand.call(LsRemoteCommand.java:175)
... 3 more
Caused by: javax.net.ssl.SSLException: Received fatal alert: protocol_version
at sun.security.ssl.Alerts.getSSLException(Unknown Source)
at sun.security.ssl.Alerts.getSSLException(Unknown Source)
at sun.security.ssl.SSLSocketImpl.recvAlert(Unknown Source)
at sun.security.ssl.SSLSocketImpl.readRecord(Unknown Source)
at sun.security.ssl.SSLSocketImpl.performInitialHandshake(Unknown Source)
at sun.security.ssl.SSLSocketImpl.startHandshake(Unknown Source)
at sun.security.ssl.SSLSocketImpl.startHandshake(Unknown Source)
at sun.net.www.protocol.https.HttpsClient.afterConnect(Unknown Source)
at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(Unknown Source)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source)
at java.net.HttpURLConnection.getResponseCode(Unknown Source)
at sun.net.www.protocol.https.HttpsURLConnectionImpl.getResponseCode(Unknown Source)
at org.eclipse.jgit.transport.http.JDKHttpConnection.getResponseCode(JDKHttpConnection.java:98)
at org.eclipse.jgit.util.HttpSupport.response(HttpSupport.java:168)
at org.eclipse.jgit.transport.TransportHttp.connect(TransportHttp.java:475)
... 5 more

会话数据:

eclipse.buildId=4.4.2.M20150204-1700
java.version=1.7.0_79
java.vendor=Oracle Corporation
BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=pt_BR
Framework arguments:  -product org.eclipse.epp.package.jee.product
Command-line arguments:  -os win32 -ws win32 -arch x86_64 -product 
org.eclipse.epp.package.jee.product

2 个答案:

答案 0 :(得分:2)

Eclipse 2019-12在实现

IBM JDK 上运行时遇到问题

SSLContext.getInstance("TLS")

不同于Oracle JDK或OpenJDK等其他JDK。

Eclipse forum post

中对此问题进行了解释

要解决此问题,您需要设置运行时参数:

-Dcom.ibm.jsse2.overrideDefaultTLS=true

eclipse.ini 文件中。

此外,如果仍然无法运行,则需要添加以下参数之一:

-Dhttps.protocols=TLSv1.1,TLSv1.2
-Djdk.tls.client.protocols=TLSv1.1,TLSv1.2

有人发现,在某些情况下,项目的顺序确实很重要,所以

-Dhttps.protocols=TLSv1.2,TLSv1.1

不同
-Dhttps.protocols=TLSv1.1,TLSv1.2

列表中的最后一个往往优先于其他列表。

IBM的其他有关“功能”的官方文章如下:

IBM Article 1

IBM Article 2

IBM Article 3

答案 1 :(得分:1)

尝试this answer到Salesforce Stack Exchange上的相关问题。它对我有用。

详细说明,GitHub最近(截至2018年2月8日)取消了对许多过时加密标准的支持。有关详细信息,请参阅this announcement

不幸的是,这个列表包含了TLSv1,它是Java 7使用的默认TLS实现。我遇到了同样的问题,因为我在使用Java 7的相当古老的Eclipse构建中通过EGit与GitHub接口,果然,它明确设置为使用TLS1.0。我按照建议的步骤强制我的Java使用TLS1.1和1.2,这个问题神奇地解决了。