数週間経っても、リモートリポジトリからプルまたはプッシュすることはできません。 IntelliJ IDEA 14にアップグレードすると発生すると思いましたが、IDEA 13.1.5でも問題を再現できます。
ツールチップには、「Fetch failed fatal:リモートリポジトリから読み込めませんでした」と表示されます。
そして、[バージョン管理]タブの例外が
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
から私達のgitサーバーを削除しました、IntelliJがそれを再び挿入することを望みます。しかし、UIを介して更新しても問題は依然として発生し、known_hosts
に新しいエントリは書き込まれません。ファイルのキャッシュを考えて、IntelliJを再起動しましたが、成功しませんでした。
端末から別のgit fetch
を実行するときに、サーバーを恒久的に追加するかどうかを尋ねられるようになりました。その後、それは再びknown_hosts
に書き込まれましたが、IntelliJはまだ私が私のプロジェクトを更新させないでしょう。
オンラインでこの動作について何も見つけていないので、新しいIntelliJバージョンの既知のバグではないと思います。それにもかかわらず、私は14.0.2にアップデートしました、しかし問題はまだあります。
IntelliJは組み込みのSSH実行ファイルを使用するように設定されています。
誰かがここで問題になる可能性があるものの手がかりを持っていますか?
IntelliJの内蔵SSHクライアントは そのknown_hosts
をハッシュしているようですが、私が持っていたものは平文でホスト名を持っていました。
私がファイルを削除してIntelliJに新しいものを作成させたとき、私の(ハッシュ化された)GitLabサーバーだけでそれ以外は何もしなかった。
それを混在させることもできません - いくつかのハッシュされていないエントリをIntelliJのハッシュされたエントリと一緒に保管してください。それで、あなたは他のSSHクライアントを設定しなければなりません ハッシュされたホストを使うために 。
設定>バージョン管理> Gitに行きます。 SSHの実行可能ファイルが「ネイティブ」に設定されていることを確認します(すでにインストールされている場合は、「組み込み」に切り替えて適用し、もう一度「ネイティブ」に戻します)。
これで問題が解決しない場合は、GitHubクライアント(無料のデスクトップアプリケーション)などのGitクライアントをダウンロードして、そのアプリケーションを介してプロジェクトを同期することをお勧めします。その後IntelliJに戻ってそれが機能するかどうか確認してください。
github repositoryを使って作業していると、最近Could not read from remote repository
エラーが出始めました。私のスペック:
もちろん、これらの問題はIDEからプッシュ/プル/フェッチなどを行おうとしたときにのみ発生しました - コマンドラインから同じコマンドを実行することは魅力のように働きました。
Built-In
SSH実行可能ファイルからNative
への切り替えはしたくありませんでした。これは主に、私のネイティブSSHクライアントがリモートリポジトリと同期しようとするたびにパスワードを要求するためです。
私はこの問題をSSHリモートURLからHTTPS URLに切り替えることで解決しました。このGitHubのヘルプページによると - SSHの代わりにHTTPS URLを使うことをお勧めします 。
SSH
からHTTPS
に変更IntelliJ IDEAでVCS - > Git - > Remotes ...に移動し、 "Origin"を含む行を選択して編集ボタンをクリックします。 GitHubでリポジトリをホストしている場合は、SSH URLを次のURLから置き換えてください。
[email protected]:USERNAME/REPOSITORY.git
に:
https://github.com/USERNAME/REPOSITORY.git
あなたのGitHubリポジトリのホームページからあなたのHTTPS URLを得ることもできます - あなたのリポジトリのHTTPS URLを表示するために "Clone or download"ボタンをクリックして "Use HTTPS"リンクをクリックしてください:
JetBrainsがGitHubへのSSHアクセスの修正を含むIntelliJ IDEA 2017.3.5をリリースしました - https://blog.jetbrains.com/idea/2018/03/intellij-idea-2017-3-5 sshのgithubへのアクセスのための修正プログラム/
pyCharmでは、
file|
v-->settings|
v-->Version Control|
v-->Git
ここでSSH executable
をBuilt-in
からNative
に変更します
apply
とclose
を押します
Ctrl+Shift+k
を押してプロジェクトをリポジトリにプッシュします。できます。リモートリポジトリを再追加することでこの問題を解決しました:VCS - > Git - > Remotes。
@ yabin yaが言ったことはクールな解決策です、あなたにそれを思い出させるだけです:あなたがまだ同じ問題を得るならば、Settings-Version Control-GitHubに行き、Clone git repositories using ssh
のチェックを外してください。
新しいSSHキーを生成してあなたのssh-agentに追加する必要があります。そのためには、この link に従うべきです。
公開鍵を作成してgithubアカウントに追加したら、Intellij Ideaの[設定] - > [バージョン管理] - > [Git] - > [SSH実行可能ファイル]の下の[組み込み(ネイティブではない)]オプションを使用します。
最近IntelliJ 12からIntelliJ 14 Ultimateにアップデートしましたが、この問題にも遭遇しました。私たちの解決策は、設定でプロキシを無効にすることでした。私達はまたパスワードを一度覚えることを止めたが、それが助けになるかどうかわからないかもしれない。プロキシ設定は、ファイル - 設定 - 外観と動作 - システム設定 - HTTPプロキシの下にあります。
これは私が現在の問題を修正するのを助けました
MacOS Sierra 10.12.2以降を使用している場合は、〜/ .ssh/configファイルを変更して自動的にキーをssh-agentにロードし、パスフレーズをキーチェーンに格納する必要があります。
Host *
AddKeysToAgent yes
UseKeychain yes
IdentityFile ~/.ssh/id_rsa
PuTTYでsshキーのパスワードを削除することで、この問題を解決しました。
解決策ではありませんが、「問題になる可能性がある」という質問に対する回答である可能性があります。
Gitlabと 'sshライブラリに組み込まれたjetbrains'は一緒にはうまくいきません。ライブラリは、gitlab(デフォルト)がSHA2ベースの鍵交換アルゴリズムのみを許可する、SHA1ベースの鍵交換アルゴリズムを使用したいと考えています。
これは少なくともTeamCity( https://youtrack.jetbrains.com/issue/TW-47704 )で報告されています。
それがIntelliJのプル/プッシュ問題、そして私のPhpStormのプッシュ問題の原因でもあるという事実は、ASSUMPTIONジェットブレーンがすべてのソフトウェアに同じ「組み込みライブラリ」を使っていることに基づいています。
Native
オプションを試しましたが、うまくいきません。最後に古い方法でsshキーを再生成し、-m
コマンドにssh-keygen
オプションを追加しました。 _ idea _ もbuild-in
オプションでうまく動作します。
ssh-keygen -m PEM -t rsa -b 4096 -C "email@..."
私は上記のすべての解決策(ネイティブ、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リポジトリをチェックアウトしようとします、そして、それはうまくいきます、そして、既存のプロジェクトは同様にうまくいきます。興味深い事実は、[アイデア設定]で[NATIVE]に切り替えると、リポジトリが機能しないことです。
リモートURLを追加するときは、これから変更します
https://[email protected]/usernameowner/project-name.git
これに
https://bitbucket.org/usernameowner/project-name.git
私はいくつかのオンラインコースからのフォークでこの問題を抱えていました。私は自分のフォークを複製してパーミッションエラーに遭遇しました。自分が他の会社のユーザーだったと主張していた理由が理解できませんでした。しかし、前回のコメンターが述べたように、私はClone git repositories using ssh
設定をチェックしていて、私の新しいアカウントにsshキーを追加するのを忘れていました。だから私はしたが、私はこのエラーを得たのでそれでもプッシュすることができませんでした。私が解決した方法はGithubデスクトップクライアントを使ってプッシュすることでした。
お持ち帰り:
私は同じ問題を抱えていました。 bitbucketを使用していて、Intellij上のリポジトリの取得/更新に問題がありました。ネイティブに変更して組み込みに戻ろうとしましたが、うまくいきませんでした。それから私はパスフレーズでSSH鍵を生成したことに気づきました。
パスフレーズなしで鍵を再生成してから、それをビットバケットに追加しました。出来た !
何も助けにはならなかった。それから私はコンピューター上のプロジェクトの名前がgitリポジトリ上の名前と違うことを見ました。
それで私はその問題を解決した。
答えのどれも私のために働かなかったのでこの答えを追加してください。
証明書が発行されたので、次のコマンドでうまくいきました。
git config --global http.sslVerify false
末尾にスペースを入れずに正しいgit SSH URLを指定することで問題を解決しました。
[email protected]:USERNAME/REPOSITORY.git
私の場合(SSH実行可能ファイルの切り替えが機能しない)に役立った唯一のことは、gitおよびgit-flowプラグインを非アクティブ化し、intellijを再起動し、それらのプラグインを再度アクティブ化することでした...
私はSSH秘密鍵をコマンドのssh-agentに追加することでこれを解決しました。
$ ssh-add -K ~/.ssh/id_rsa
Settings --> Version Control --> Git
を設定してから、SSH実行可能ファイルのドロップダウンリストでNative
を選択します。
問題は私のPCで解決されています。
設定 - >バージョン管理 - > Git を選択し、SSH実行可能ファイルドロップダウンリストで ビルトイン オプションを選択します。
そしてgitの古いバージョンを 2.14.2 のようにインストールしてください。
うまくいっています。
それでもうまくいかない場合は、ターミナルに移動してフォルダから入力してください。
git Push Origin master
それが、神々が本来それを望んでいた方法です。
システム管理者に連絡することを忘れないでください。
私の場合私はすべてのものが正しく設定されていた(SSHも追加された)が、私は同じエラーを受けた
リポジトリアクセスが拒否されました。 fatal:リモートリポジトリから読み込めませんでした。
その理由は、私はそのリポジトリへの読み取りアクセス権しか持っていなかったからです。あなたの貴重な時間を無駄にせずにそれゆえ最初のこととしてそれをチェックしてください。ありがとうございました。
Githubやbitbucketなどのクラウドサービスに接続しようとしている場合は、Ideaプロキシ設定を確認してください。これはインストールするプラグインを探すか、help
メニューでソフトウェアの更新をチェックすることで行えます。インターネット/プロキシ設定が正しくない場合は、有効なエントリを追加するか、auto
に設定してください。
私は最近WebStormでこの問題を抱えていて(2018年2月)、そして(当時の)以前の解決策はどれも私にとってはうまくいきませんでした。トラブルシューティングと研究に数時間を費やした後、 私は2018年のEAPバージョンをインストールしました そして今それは動作します!
IntelliJ Idea> VCS/Gitサブシステムの2017年12月で新しい issue が報告されました。これはビルド181.2445(または2018年1月31日以降の最新ビルド)で修正されました。
Update-ssh-key-to-use-new-passphrase も参照してください。