web-dev-qa-db-ja.com

Githubへのプッシュ/プルはAndroid StudioとIntelliJで壊れています

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で発生しました。

なぜこれが突然機能しなくなったのですか?どうすれば修正できますか?

22
Sean Barbeau

解決策:

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にロードする必要があります

9
Sean Barbeau

IntelliJは、github Push, pullFebruary 23, 2018で問題が発生しました。その理由は、IntelliJのBuilt-in SSHの弱い暗号化がgithubでサポートされなくなったためです。

解決策は、IntelliJをアップグレードすることなく簡単です。

[IntelliJ - File - Settings - Version Controll - Git] 

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

enter image description here

'Native'はgit.exeを使用しているため、ほとんどのgitクライアントにはすでに最新の暗号化が適用されているため問題はありません。古いgitクライアントを使用している場合は、更新してください。

https://git-scm.com/download

ps)IntelliJ、PhpStorm、およびAndroid Studioはすべて同じ問題を抱えており、同じ方法で解決できます。

背景)ショーンバルボーの答え。

26
Been Kyung-yoon