在Android Studio和IntelliJ中,对Github的推/拉操作已中断

在Android Studio和IntelliJ中,对Github的推/拉操作已中断,git,android-studio,github,intellij-idea,ssh,Git,Android Studio,Github,Intellij Idea,Ssh,我已经从Android Studio(3.0.1)和- Build#AI-171.4443003)和IntelliJ(2017.3.4-Build 173.4548.28),直到昨天(2018年2月22日),一切正常 今天(2018年2月23日),当我在IntelliJ或Android Studio中尝试向Github推送或从Github拉送任何东西时,突然失败,我在“版本控制控制台”中收到以下消息: 这同时发生在两台不同的机器上,一台使用Windows7 Enterprise,另一台使用Win

我已经从Android Studio(3.0.1)和- Build#AI-171.4443003)和IntelliJ(2017.3.4-Build 173.4548.28),直到昨天(2018年2月22日),一切正常

今天(2018年2月23日),当我在IntelliJ或Android Studio中尝试向Github推送或从Github拉送任何东西时,突然失败,我在“版本控制控制台”中收到以下消息:

这同时发生在两台不同的机器上,一台使用Windows7 Enterprise,另一台使用Windows10


为什么会突然停止工作,我如何修复它?

解决方案:

对于IntelliJ-更新至or 2017.3.5(173.4674.1)

适用于Android Studio-更新至Android Studio 3.1

背景:

Github于2018年2月23日通过永久取消对弱加密标准的支持触发了这一事件:

但是,IntelliJ和Android Studio在使用强安全密码的一些SSH握手方面仍然存在问题:

  • 智能问题-
  • 安卓工作室问题-
IntelliJ 2018.1中已解决了这一基本问题:

…以及2017.3.5(173.4674.1)

对于Android Studio,修复程序在Studio 3.1中提供

正如@BE Kyung-Yoon在其回答中提到的,作为一种解决方法,您可以将SSH可执行文件更改为“本机”,但正如IntelliJ问题中提到的:

切换到本机将起作用,但如果密钥受密码保护,则需要首先将它们加载到ssh代理中


IntelliJ在2018年2月23日的github推拉操作中遇到问题。 原因是github不再支持IntelliJ中内置SSH的
弱加密

解决方案很简单,无需升级IntelliJ。

由于“Native”使用git.exe,因此没有问题,因为大多数git客户端已经应用了最新的加密版本。 如果您使用的是旧的git客户端,请更新

ps)IntelliJ、PhpStorm和Android Studio都有相同的问题,可以用相同的方法解决


背景)Sean Barbeau的回答。

如IntelliJ期刊中所述,请注意“切换到本机将起作用,但如果您的密钥受密码保护,则需要先将其加载到ssh代理中”。
如果您的密钥受密码保护,则需要先将其加载到ssh代理中。
感谢您的重要评论。
16:41:14.159: [onebusaway-android] git -c core.quotepath=false pull --progress --no-stat -v --progress upstream master
java.io.IOException: There was a problem while connecting to github.com:22
        at com.trilead.ssh2.Connection.connect(Connection.java:791)
        at com.trilead.ssh2.Connection.connect(Connection.java:577)
        at org.jetbrains.git4idea.ssh.SSHMain.start(SSHMain.java:172)
        at org.jetbrains.git4idea.ssh.SSHMain.main(SSHMain.java:138)
Caused by: java.io.IOException: Key exchange was not finished, connection is closed.
        at com.trilead.ssh2.transport.KexManager.getOrWaitForConnectionInfo(KexManager.java:92)
        at com.trilead.ssh2.transport.TransportManager.getConnectionInfo(TransportManager.java:230)
        at com.trilead.ssh2.Connection.connect(Connection.java:743)
        ... 3 more
Caused by: java.io.IOException: Cannot negotiate, proposals do not match.
        at com.trilead.ssh2.transport.KexManager.handleMessage(KexManager.java:413)
        at com.trilead.ssh2.transport.TransportManager.receiveLoop(TransportManager.java:754)
        at com.trilead.ssh2.transport.TransportManager$1.run(TransportManager.java:469)
        at java.lang.Thread.run(Thread.java:745)
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
[IntelliJ - File - Settings - Version Controll - Git] 

You can change 'SSH executable' from 'Build-in' to 'Native'.