Android Studio(3.0.1-ビルド#AI-171.4443003)とIntelliJ(2017.3.4-ビルド173.4548.28)の両方からGithubで認証するようにSSHを設定しましたが、すべて正常に機能していました昨日(2018年2月22日)まで。
今日(2018年2月23日)、IntelliJまたはAndroid StudioのいずれかでGithubとの間で何かをプッシュまたはプルしようとすると失敗し、「バージョン」にこのメッセージが表示されます。コントロールコンソール」:
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.
これは、2つの異なるマシンで同時に発生しました。1つはWindows 7 Enterpriseで、もう1つはWindows10で発生しました。
なぜこれが突然機能しなくなったのですか?どうすれば修正できますか?
解決策:
IntelliJの場合 IntelliJ 2018.1 または2017.3.5(173.4674.1)に更新します。
Android Studio-アップデートしてAndroid Studio 3.1 課題追跡システムに関するこのコメントを参照 。
背景:
Githubは、2018年2月23日に、弱い暗号化標準のサポートを完全に削除することでこれをトリガーしました。
https://github.com/blog/2507-weak-cryptographic-standards-removed
ただし、IntelliJとAndroid Studioには、強力なセキュリティ暗号を使用したSSHハンドシェイクに関する問題がまだあります。
この根本的な問題はIntelliJ2018.1で修正されています: https://youtrack.jetbrains.com/issue/IDEA-140196#comment=27-2717976
...および2017.3.5(173.4674.1)。
Android Studioの場合、修正はStudio 3.1で利用可能です 課題追跡システムに関するこのコメントを参照 。
@Been Kyung Yoonが回避策として彼の回答で述べているように、SSH実行可能ファイルを「ネイティブ」に変更できますが、IntelliJの問題で述べられているように次の点に注意してください。
ネイティブへの切り替えは機能しますが、キーがパスフレーズで保護されている場合は、最初にキーをssh-agentにロードする必要があります
IntelliJは、github Push, pull
のFebruary 23, 2018
で問題が発生しました。その理由は、IntelliJのBuilt-in SSH
の弱い暗号化がgithubでサポートされなくなったためです。
[IntelliJ - File - Settings - Version Controll - Git]
You can change 'SSH executable' from 'Build-in' to 'Native'.
'Native'はgit.exeを使用しているため、ほとんどのgitクライアントにはすでに最新の暗号化が適用されているため問題はありません。古いgitクライアントを使用している場合は、更新してください。
ps)IntelliJ、PhpStorm、およびAndroid Studioはすべて同じ問題を抱えており、同じ方法で解決できます。
背景)ショーンバルボーの答え。