"cannot open git-upload-pack" - 在 Eclipse 中克隆项目 IDE

"cannot open git-upload-pack" - Cloning project in Eclipse IDE

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

https://github.com/"COMPANY NAME"/"PROJECTNAME".git: cannot open git-upload-pack

我已经添加了 http.sslVerify = false - 没有用

我配置了 RSA 密钥 - 也没有用

我使用:Windows10/Java7/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.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

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

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

不幸的是,此列表包括 TLSv1,它是 Java 7 使用的默认 TLS 实现。我遇到了同样的问题,因为我在相当古老的 Eclipse 构建上通过 EGit 与 GitHub 交互还在用Java7,果然,明确设置为使用TLS1.0。我按照推荐的步骤强制我的 Java 使用 TLS1.1 和 1.2,问题就神奇地解决了。

Eclipse 2019-12 在 IBM JDK 上有一个问题 运行 实现了

SSLContext.getInstance("TLS")

与其他 JDK 不同,例如 Oracle JDK 或 OpenJDK。

这个问题在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 的其他解释 "functionality" 的官方文章如下:

IBM Article 1

IBM Article 2

IBM Article 3