IntelliJ IDEAを使用したgit:リモートリポジトリから読み取れませんでした


260

数週間後、リモートリポジトリからプルしたり、リモートリポジトリにプッシュしたりできなくなります。IntelliJ IDEA 14にアップグレードしたときに起こったと思っていましたが、IDEA 13.1.5でも問題を再現できます。

ツールチップには、「フェッチが致命的に失敗しました:リモートリポジトリから読み取れませんでした」と表示されます。

そして、バージョン管理タブの例外は

14:02:37.737: cd C:\dev\project
14:02:37.737: git -c core.quotepath=false fetch origin --progress --prune
java.io.IOException: Padding in RSA public key!
    at com.trilead.ssh2.signature.RSASHA1Verify.decodeSSHRSAPublicKey(RSASHA1Verify.java:37)
    at com.trilead.ssh2.KnownHosts.addHostkey(KnownHosts.java:98)
    at com.trilead.ssh2.KnownHosts.initialize(KnownHosts.java:414)
    at com.trilead.ssh2.KnownHosts.initialize(KnownHosts.java:440)
    at com.trilead.ssh2.KnownHosts.addHostkeys(KnownHosts.java:137)
    at org.jetbrains.git4idea.ssh.SSHMain.configureKnownHosts(SSHMain.java:462)
    at org.jetbrains.git4idea.ssh.SSHMain.start(SSHMain.java:155)
    at org.jetbrains.git4idea.ssh.SSHMain.main(SSHMain.java:137)
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.

IntelliJの組み込み端末を使用してを実行するとgit -c core.quotepath=false fetch origin --progress --prune、正常に動作します。

スタックトレースによると、私のKnownHostsに問題があるようですので~/.ssh/known_hosts、IntelliJが再度挿入することを期待してからgitサーバーを削除しました。しかし、UIを介して更新する場合にも問題は発生し、新しいエントリはに書かれていませんknown_hosts。ファイルのキャッシュについて考えたところ、IntelliJを再起動しましたが、成功しませんでした。

git fetch端末から別の操作を行うと、サーバーを永続的に追加するかどうかを尋ねられます。その後、known_hosts再度書き込まれましたが、IntelliJではプロジェクトを更新できません。

オンラインでこの動作について何も見つけていないため、新しいIntelliJバージョンの既知のバグではないようです。それにもかかわらず、14.0.2にアップデートしましたが、問題はまだ残っています。

IntelliJは、組み込みのSSH実行可能ファイルを使用するように構成されています。

誰かがここで問題になる可能性がある手掛かりを持っていますか?


SSHキーを手動でgitリポジトリに追加しましたか?
aurelius 14

@aureliusはい、私たちはGitLabを使用しており、プロフィールに投稿しました。
stuXnet 2014

IntelliJは、公開/秘密鍵のペアに不満があります。どのように生成しましたか?
yole

@yole私は両方を試してみましたputtygenし、Git GUIそれがあまりにも私の最初に考えたとして、。それは私の鍵ペアに関するものですか?例外は、既知のホストについてのようだ:code.google.com/p/connectbot/source/browse/src/com/trilead/ssh2/...
Stuxnetの

反対票については不明です。known_hostsのハッシュ化/非ハッシュ化エントリに問題があるようです。もう少し掘り下げて質問に答えます。
stuXnet 2015年

回答:


721

Settings --> Version Control --> Git、次に、SSH実行可能ドロップダウンで、 Native

バージョン管理:Git:SSH実行可能ファイル:現在のプロジェクト用

これで問題が解決しない場合は、ネイティブsshgitクライアントのバージョンが十分に新しいことを確認してください。


5
SSH実装を変更することは可能であることを知っています。組み込みの実行可能ファイルを使用していることを明示的に書いてもいます(私が書いていないもの:Windowsではネイティブは機能しません)しかし、あなたは投稿しません組み込みの実行可能ファイルの問題が何であるか私の質問。
stuXnet 2015

22
私のために助けることはできません
ヘルボーイ

8
@Jimboちょうど私の仮定ですが、これは私がそれを理解する方法です。ビルトインは、リポジトリ内の別の「ユーザー」を使用します。以前は、「ユーザー」がファイルと変更をプッシュすることが許可されていました。その「ユーザー」はアップデートでリセットされたため、もうリセットできません。ネイティブは、あなたのマシンにサインインしたアカウントを使用します。
AlexG 2016年

10
奇妙な。2台以上のコンピューターで作業していた後、3台のコンピューターすべてがこれを実行し始めました。これはそれを修正しました。WTF
ニコラスディピアッツァ2018

11
@NicholasDiPiazzaこれは、Githubが暗号化標準を削除することに関連していますgithub.com/blog/2507-weak-cryptographic-standards-removed。また、「組み込み」ライブラリを使用する他のソフトウェア(TeamCityなど)もこの変更の影響を受けます。ネイティブのgitクライアントはおそらく最新のバージョンです。そのため、この手順で修正します。
フィッシュ

68

[設定]> [バージョン管理]> [Git]に移動します。SSH実行可能ファイルが「ネイティブ」に設定されていることを確認します。(既にある場合は、「組み込み」に切り替えて適用し、再度「ネイティブ」に切り替えます)。

これで問題が解決しない場合は、GitHubクライアント(無料のデスクトップアプリ)などのGitクライアントをダウンロードして、アプリを介してプロジェクトを同期することをお勧めします。次にIntelliJに戻り、機能するかどうかを確認します。


1
Android Studioでも問題なく機能します。この問題は私を怒らせました、@ Farbod janに感謝します!
Javad Sadeqzadeh 2018

1
切り替えがうまくいきSSH executableました。私もすでにオンNativeでした。
NIC 2018

1
組み込みに戻ることを検討しているすべての人のために:最初にネイティブSSHを更新することを検討してください。ネイティブ実行可能ファイルはOS全体で使用され、IDEの内外で一貫して動作します。
milosmns

52

Could not read from remote repositoryと一緒に作業しているときに最近エラーが発生し始めましたリポジトリ。私のスペック:

  • IntelliJ IDEA 2017.3.4(Ultimate Edition)
  • 設定->バージョン管理-> Git-> SSH実行可能ファイル->組み込み
  • Fedora Linux

ここに画像の説明を入力してください

もちろん、これらの問題はIDEからプッシュ/プル/フェッチなどをしようとしたときにのみ発生しました-コマンドラインから同じコマンドを実行すると、魅力的に機能しました。

私のために働いた解決策

Built-InSSH実行可能ファイルからに切り替えたくありませんでした。これはNative、ほとんどの場合、ネイティブのSSHクライアントがリモートリポジトリと同期しようとするたびにパスワードを要求されるためです。

SSHリモートURLからHTTPS URLに切り替えることでこの問題を解決しました。このGitHubヘルプページによると、SSHのURLではなくHTTPSのURLを使用することをお勧めします

リモートURLをからSSHに変更していますHTTPS

IntelliJ IDEAでVCS-> Git-> Remotes ...に移動し、「origin」を含む行を選択して、編集ボタンをクリックします。GitHubでリポジトリをホストしている場合は、次のSSH URLを置き換えます。

git@github.com:USERNAME/REPOSITORY.git

に:

https://github.com/USERNAME/REPOSITORY.git

GitHubリポジトリのホームページからHTTPS URLを取得することもできます。[クローンまたはダウンロード]ボタンをクリックし、[HTTPSを使用]リンクをクリックして、リポジトリのHTTPS URLを表示します。

ここに画像の説明を入力してください

更新2018-03-13

ジェットブレーンズはただのGitHubへのSSHアクセスのための修正が含まのIntelliJ IDEA 2017年3月5日にリリース- https://blog.jetbrains.com/idea/2018/03/intellij-idea-2017-3-5-fix-for-ssh-access -to-github /


2
これは、MacBook Pro、PHPStorm 2017.3.4で私のために機能したソリューションです(2018年1月30日、1/31に記載されている必要なビルド日より前)。
エドワードバーナード2018年

1
このソリューションは機能しましたが、通常、問題は多くのユーザーがSSH鍵を使用してリモートを定義しようとすることですが、エラーが発生します。ほとんどの場合、SSHからHTTPSへの切り替えがソリューションです。
Kourosh、

1
httpsに基づくリンクを使用するPhpStormeバージョン2018.1.5で私の問題を解決
dmitri

1
このソリューションは、MacBook Pro、Intellij IDEAで私に役立ちました。
shaojun lyu

1
また、GitLabと連携して、URLをhttpsリンクに変更します。
マスタージェームズ

23

IntelliJの組み込みSSHクライアントはそのハッシュknown_hostsハッシュしているようですが、私が持っていたものはホスト名がクリアテキストでありました。

私がファイルを削除してIntelliJに新しい(ハッシュされた)GitLabサーバーのみを使用して新しいファイルを作成させると、それは機能しました。

また、混在させることもできません。ハッシュ化されていないエントリをIntelliJのハッシュ化されたエントリと一緒に保管してください。そのため、ハッシュされたホストを使用するように他のSSHクライアント構成する必要があります


14
  1. [SSH実行可能ファイル]ドロップダウンで[設定]-> [Git]-> [ネイティブを選択]に移動します。(選択されていない場合)
  2. GithubリポジトリからHTTPSリンクをコピーします。
  3. VCS-> Git-> Remotesに移動します。
  4. オリジンを編集し、URLフィールドにHTTPSリンクを貼り付けます。
  5. プレスCtrl+Shift+kとは、リポジトリにプロジェクトをプッシュします。できます。

1
SSHとURLをHTTPSプロトコルで置き換える間の接続はどこにありますか?
sweisgerber.dev 2018

私はただ知りたいのですが、地球上のどこでgithubについてここで言及しましたか?
Emad Ha

これは私にとってはうまくいきました、それは私に私のbitbucket資格情報を尋ねました、そしてそれはそれでいいです
Marlon、


11

リモートリポジトリを追加してこの問題を解決しました:VCS-> Git-> Remotes。


4
私の場合、適切なオプションではありません...再度追加することはできません。「無効なリモート[...]リモートURLテストが失敗しました:リモートリポジトリから読み取れませんでした。」Obs:接続できますgit cliを介してgithubに。
Ricardo

1
@Ricardoと同じ問題
Uri Goren

@uri解決策のどれも私にとってうまくいきませんでした。2018 EAPをインストールし、2017年12月に報告された問題を修正しました。Update-ssh-key-to-use-new-passphrase
Ricardo

質問にコメントを追加しましたが、非表示になりました。だから私も答えを追加しました。
Ricardo

私の理由は不明ですが、PHPStorm 2017.4で動作します。ありがとう!
マクシムB.

5

@yabin yaが言っているのはクールなソリューションです。次の点に注意してください。同じ問題が引き続き発生する場合は、Settings-Version Control-GitHubに移動し、チェックを外してくださいClone git repositories using ssh


5

新しいSSHキーを生成し、それをssh-agentに追加する必要があります。そのためには、このリンクをたどる必要があります。

公開鍵を作成してgithubアカウントに追加したら、Intellij Ideaの[設定]-> [バージョン管理]-> [Git]-> [SSH実行可能ファイル]の[組み込み(ネイティブではない)]オプションを使用する必要があります。


1
NativeMacで問題を解決するために切り替える
Jeroen Vermeulen-MageHost

私はこの問題に約1週間ほど苦労しました(幸い、当面はgitコマンドラインを使用できました)。最終的に解決した方法は、SSHキーを再生成することでしたが、コンピューターを再起動してコマンドラインを使用する必要もありました。 ssh-add。
Crenguta S 2018

3

最近IntelliJ 12からIntelliJ 14 Ultimateに更新しましたが、この問題も発生しました。私たちの解決策は、設定でプロキシを無効にすることでした。また、パスワードの記憶を1回停止しましたが、それが役立つかどうかはわかりません。プロキシ設定は、ファイル-設定-外観と動作-システム設定-HTTPプロキシの下にあります。


それは面白い!それであなたは同じスタックトレースを持っていましたか?
stuXnet

同じスタックトレースがありました(答えを少し変更しました)
Koen de Roo

3

これは私が現在の問題を修正するのに役立ちました

macOS Sierra 10.12.2以降を使用している場合は、〜/ .ssh / configファイルを変更して、キーをssh-agentに自動的にロードし、パスフレーズをキーチェーンに保存する必要があります。

Host *
 AddKeysToAgent yes
 UseKeychain yes
 IdentityFile ~/.ssh/id_rsa

ソース



2

これを解決するには、コマンドでSSH秘密鍵をssh-agentに追加します。

$ ssh-add -K ~/.ssh/id_rsa

そしてを設定してSettings --> Version Control --> Gitから、SSH実行可能ドロップダウンで、Native


1

解決策/回避策ではなく、おそらく「問題の可能性」という質問への回答:

Gitlabと「sshライブラリに組み込まれているjetbrains」は、一緒に動作しません。ライブラリは、SHA1ベースの鍵交換アルゴリズムを使用したいと考えています。gitlab(デフォルト)では、SHA2ベースの鍵交換アルゴリズムのみが許可されています。

これは少なくともTeamCityについて報告されました(https://youtrack.jetbrains.com/issue/TW-47704)。

IntelliJでのプル/プッシュの問題の原因である可能性があること、およびPhpStormでのプッシュの問題は、すべてのソフトウェアで同じ「ライブラリに組み込まれている」というASSUMPTIONジェットブレインが使用していることに基づいています。


0

オンラインコースのフォークでこの問題が発生しました。私は自分のフォークのクローンを作成し、権限エラーに遭遇しました。自分が他の会社のユーザーであると主張した理由が理解できませんでした。しかし、前回のコメントで述べたように、Clone git repositories using ssh設定をチェックしてもらい、新しいアカウントにSSHキーを追加するのを忘れていました。だから私はそうしましたが、このエラーが発生したのでプッシュできませんでした。私が解決した方法は、Githubデスクトップクライアントを使用してプッシュすることでした。

要点:

  1. 新しいGitHubアカウントを開くときは、sshキーを必ず追加してください
  2. アカウントごとに異なるSSHキーを使用する
  3. 一般に、私はIntelliJのGitHubの問題に、プロジェクトごとに少なくとも1回または2回遭遇します。GitHubデスクトップのコピーがあることを確認し、それにプロジェクトをロードします。これは、Intellijで発生する可能性のある多くの問題を解決するのに役立ちます。これだけではありません。それは実際には本当に素晴らしいGUIクライアントであり、無料です!
  4. @yabinが提案することを実行し、Macのネイティブクライアントを使用することはおそらく意味があります

0

私の場合に役立つ唯一のこと(スイッチSSH-executabeが機能しなかった)は、gitおよびgit-flowプラグインを非アクティブ化し、intellijを再起動して、これらのプラグインを再度アクティブ化することでした...


0

システム管理者に連絡することを忘れないでください。

私の場合、すべてを正しく設定しましたが(SSHも追加されました)、同じエラーが発生しました

リポジトリへのアクセスが拒否されました。致命的:リモートリポジトリから読み取れませんでした。

その理由は、私にはそのリポジトリへの読み取りアクセスしかなかったからです。したがって、貴重な時間を無駄にすることなく、まずそれを確認してください。ありがとうございました。


java.io.IOException: Padding in RSA public key!十分な権限がないときにログを取得しましたか?これは興味深いものであり、IntelliJのSSH処理のバグを示している可能性があります。
stuXnet 2017

0

他のすべてが失敗した場合は、ターミナルに行き、フォルダから入力してください:

git push origin master

それが神々が最初にそう望んでいた方法です。


0

私は最近(2018年2月)WebStormでこの問題があり、以前の解決策(私)のどれも私のために機能しませんでした。トラブルシューティングと調査に数時間を費やした後、 私は2018 EAPバージョンをインストールしましたが、動作します!


ビルド181.2445(または31 / Jan / 2018以降の最新ビルド)で修正されたIntelliJ Idea> VCS / Gitサブシステムで2017年12月に報告された新しい問題

Update-ssh-key-to-use-new-passphraseの投稿も参照してください


リンクをありがとう。他のTL; DRの場合、私にとっての重要なコメントはNateでした:「解決策:設定>外観と動作>システム設定>パスワード...」...「保存せず、再起動後にパスワードを忘れる」に切り替えます、プルを実行してから、元に戻します。
マシューウェーバー

0

問題は私のPCで解決されました。
[設定]-> [バージョン管理]-> [Git]をクリックし、[SSH実行可能ファイル]ドロップダウンで組み込みオプションを選択ます。

2.14.2のようなgit古いバージョンをインストールします。
それはうまくいきます!


0

githubやbitbucketなどのクラウドサービスに接続する場合は、Ideaプロキシ設定を確認してください。これは、インストールするプラグインを探すか、helpメニューでソフトウェアの更新を確認することで実行できます。インターネット/プロキシ設定が正しくない場合は、有効なエントリを追加するか、次のように設定しますauto


0

これにより、MacOS High Sierra(10.13.5)/ IntelliJ IDEA 2018.4で(HTTPSではなくSSHを使用し、組み込みではなくネイティブgitを使用して)修正されました。

ファイル->キャッシュを無効にして再起動


0

末尾のスペースなしで正しいgit SSH urlがあることを確認するだけで問題を解決しました:

git@github.com:USERNAME/REPOSITORY.git


0

上記のすべての解決策(ネイティブ、VCSリポジトリのURLの変更、Gitの更新、IDEAの更新、キャッシュの無効化)を試しましたが、何の助けにもなりませんでした。最後に私は私のために働く解決策を見つけました。

解決策:私はアイデアを閉じて、ファイルの内容を次のように置き換えました~\.IntelliJIdea20xx.x\config\options\git.xml

<application>
  <component name="Git.Application.Settings">
    <option name="SSH_EXECUTABLE" value="IDEA_SSH" />
  </component>
</application>

次に、IDEAを開始し、SSH GITリポジトリーをチェックアウトしてみます。それが機能し、既存のプロジェクトも機能します。興味深い事実は、Idea SettingsでNATIVEに切り替えると、リポジトリが機能しないことです。


0

私も同じ問題を抱えていました。bitbucketを使用していて、Intellijのリポジトリのプル/更新に問題がありました。ネイティブに変更して組み込みに戻そうとしましたが、機能しませんでした。次に、パスフレーズを使用してsshキーを生成したことに気付きました。

パスフレーズなしで鍵を再生成し、それをbitbucketに追加しました。出来た !


0

私はNativeオプションを試しましたが、うまくいきませんでした。最後に古い方法でsshキーを再生成し-mssh-keygenコマンドにオプションを追加しました。IDEAbuild-inオプションで問題なく動作します。

ssh-keygen -m PEM -t rsa -b 4096 -C "email@..."

0

リモートURLを追加する場合はこちらから変更

https://username@bitbucket.org/usernameowner/project-name.git

これに

https://bitbucket.org/usernameowner/project-name.git



-1

動作しないHTTPS場合SSHは、IntelliJ設定で「ネイティブ」を選択した後、gitリポジトリへのリンクをオプションに変更したことを確認してください。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.