git avec IntelliJ IDEA: impossible de lire à partir du référentiel distant

260

Depuis quelques semaines, je ne suis pas en mesure de tirer ou de pousser depuis ou vers le référentiel distant. Je pensais que cela se produisait lors de la mise à niveau vers IntelliJ IDEA 14, mais je peux également reproduire le problème avec IDEA 13.1.5.

L'info-bulle indique "La récupération a échoué: impossible de lire à partir du référentiel distant."

et l'exception dans l'onglet Contrôle de version se lit

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.

En utilisant le terminal intégré d'IntelliJ, en cours d'exécution git -c core.quotepath=false fetch origin --progress --prune, cela fonctionne comme il se doit.

Selon le stacktrace, il semble y avoir un problème avec mon KnownHosts, donc j'ai supprimé notre serveur git ~/.ssh/known_hosts, en espérant qu'IntelliJ le réinsérerait. Mais le problème persiste lors de la mise à jour via l'interface utilisateur et aucune nouvelle entrée n'est écrite known_hosts; en pensant à la mise en cache du fichier, j'ai redémarré IntelliJ, sans succès.

Lorsque git fetchj'en fais une autre depuis le terminal, on me demande maintenant si je veux ajouter définitivement le serveur. Après cela, il a été écrit à known_hostsnouveau, mais IntelliJ ne me laisse toujours pas mettre à jour mon projet.

Je n'ai rien trouvé sur ce comportement en ligne, donc je suppose que ce n'est pas un bug connu avec la nouvelle version d'IntelliJ. Néanmoins, j'ai mis à jour vers 14.0.2, mais le problème persiste.

IntelliJ est configuré pour utiliser l'exécutable SSH intégré.

Quelqu'un at-il une idée de ce qui pourrait être le problème ici?

stuXnet
la source
Avez-vous ajouté manuellement une clé SSH à votre référentiel git?
aurelius
@aurelius oui, nous utilisons GitLab, et je l'ai posté dans mon profil.
stuXnet
IntelliJ n'est pas satisfait de votre paire de clés publique / privée. Comment l'avez-vous généré?
yole
@yole, j'ai essayé les deux puttygenet Git GUI, comme c'était ma première pensée aussi. Êtes-vous sûr qu'il s'agit de ma paire de clés? L'exception semble concerner les hôtes connus: code.google.com/p/connectbot/source/browse/src/com/trilead/ssh2/…
stuXnet
Je ne suis pas sûr du vote négatif - il semble y avoir un problème avec les entrées hachées / non hachées dans les hôtes connus. Je vais creuser un peu plus loin et répondre à la question.
stuXnet

Réponses:

722

Settings --> Version Control --> Git, puis, dans la liste déroulante exécutable SSH, choisissez Native

Contrôle de version: Git: exécutable SSH: pour le projet en cours

Si cela n'aide pas, assurez-vous que votre version native sshet vos gitclients sont d'une version suffisamment récente.

yabin ya
la source
5
Je sais qu'il est possible de changer l'implémentation SSH, j'ai même explicitement écrit que j'utilise l'exécutable intégré (ce que je n'ai pas écrit: natif ne fonctionne pas pour moi sous Windows) Mais votre message ne répond pas ma question quel pourrait être le problème avec l'exécutable intégré.
stuXnet
22
Ne peut pas aider pour moi
hellboy
8
@Jimbo Juste mon hypothèse, mais voici comment je le comprends: Built in utilise un autre "utilisateur" dans votre référentiel, auparavant cet "utilisateur" était autorisé à envoyer des fichiers et des modifications. Cet «utilisateur» a été réinitialisé dans une mise à jour et n'est plus en mesure de le faire. Native utilise le compte que vous avez connecté sur votre machine.
AlexG
10
Étrange. j'ai eu 3 ordinateurs séparés tous commencent à me faire ça après avoir travaillé pendant 2+ ans. cela l'a corrigé. WTF
Nicholas DiPiazza
11
@NicholasDiPiazza Ceci est lié à la suppression par Github des normes cryptographiques github.com/blog/2507-weak-cryptographic-standards-removed . D'autres logiciels qui utilisent des bibliothèques «intégrées» (par exemple TeamCity) sont également affectés par ce changement. Votre client git natif est probablement à jour, c'est pourquoi cette étape le corrige.
philsch
68

Allez dans Préférences> Contrôle de version> Git. Assurez-vous que l'exécutable SSH est défini sur «Native». (Si c'est déjà le cas, basculez-le sur «Built-in», appliquez-le, puis revenez à «Native».).

Si cela ne résout pas votre problème, je vous suggère de télécharger un client Git tel que le client GitHub (application de bureau gratuite) et d'essayer de synchroniser votre projet via l'application. Revenez ensuite à IntelliJ et vérifiez si cela fonctionne.

Farbod
la source
1
Fonctionne également très bien dans Android Studio. Ce problème me rendait fou, merci @Farbod jan!
Javad Sadeqzadeh
1
Le basculement a SSH executablefonctionné pour moi. J'étais déjà allumé Nativeaussi.
nic
1
Pour tous ceux qui envisagent de revenir au intégré: pensez à mettre à jour votre SSH natif en premier. L'exécutable natif est utilisé dans tout le système d'exploitation et se comportera de manière cohérente à l'intérieur et à l'extérieur de votre IDE.
milosmns
52

J'ai commencé à recevoir des Could not read from remote repositoryerreurs récemment en travaillant avec mondépôt. Mes spécifications:

  • IntelliJ IDEA 2017.3.4 (Ultimate Edition)
  • Paramètres -> Contrôle de version -> Git -> Exécutable SSH -> Intégré
  • Fedora Linux

entrez la description de l'image ici

Bien sûr, ces problèmes ne se sont produits que lorsque vous essayez de pousser / tirer / récupérer, etc. depuis IDE - exécuter les mêmes commandes à partir de la ligne de commande a fonctionné comme un charme.

Solution qui a fonctionné pour moi

Je ne voulais pas passer de l' Built-Inexécutable SSH à Native, principalement parce que mon client SSH natif me demandait le mot de passe chaque fois que j'essayais de me synchroniser avec le référentiel distant.

J'ai résolu ce problème en passant de l'URL distante SSH à l'URL HTTPS. Selon cette page d'aide de GitHub - il est recommandé d'utiliser l'URL HTTPS au lieu de SSH .

Changer l'URL distante de SSHenHTTPS

Dans IntelliJ IDEA, allez dans VCS -> Git -> Télécommandes ... , sélectionnez la ligne contenant "origine" et cliquez sur le bouton Modifier. Si vous hébergez votre référentiel sur GitHub, remplacez votre URL SSH à partir de:

[email protected]:USERNAME/REPOSITORY.git

à:

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

Vous pouvez également obtenir votre URL HTTPS à partir de la page d'accueil de votre référentiel GitHub - cliquez sur le bouton "Cloner ou télécharger" et cliquez sur le lien "Utiliser HTTPS" pour afficher l'URL HTTPS de votre référentiel:

entrez la description de l'image ici

MISE À JOUR 2018-03-13

JetBrains vient de publier IntelliJ IDEA 2017.3.5 qui inclut un correctif pour l'accès SSH à GitHub - https://blog.jetbrains.com/idea/2018/03/intellij-idea-2017-3-5-fix-for-ssh-access -à-github /

Szymon Stepniak
la source
2
C'est la solution qui a fonctionné pour moi sur un MacBook Pro, PHPStorm 2017.3.4) (30 janvier 2018 avant la date de construction nécessaire notée 1/31).
Edward Barnard
1
Cette solution a fonctionné, généralement, le problème est que de nombreux utilisateurs essaient d'utiliser la clé SSH pour définir la télécommande, mais cela vous donne une erreur. Le passage de SSH à HTTPS est la solution la plupart du temps.
Kourosh
1
en utilisant le lien basé sur https slove mon problème sur PhpStorme version 2018.1.5
dmitri
1
Cette solution a fonctionné pour moi sur MacBook Pro, Intellij IDEA.
shaojun lyu
1
Fonctionne également avec GitLab pour modifier le lien URL vers https.
Master James
23

Le client SSH intégré d'IntelliJ semble hacher sonknown_hosts , mais celui dont j'avais les noms d'hôtes en texte clair.

Lorsque j'ai supprimé le fichier et laissé IntelliJ en créer un nouveau, avec uniquement mon serveur GitLab (haché) et rien d'autre, cela a fonctionné.

Il n'est également pas possible de le mélanger - conservez quelques entrées non hachées avec des entrées hachées pour IntelliJ. Vous devez donc configurer vos autres clients SSH pour utiliser des hôtes hachés .

stuXnet
la source
14
  1. Allez dans Paramètres-> Git-> Sélectionnez la liste déroulante de l'exécutable Native dans SSH. (S'il n'est pas sélectionné)
  2. Copiez le lien HTTPS de votre référentiel Github.
  3. Allez dans VCS-> Git-> Remotes ..
  4. Modifiez l'origine et collez le lien HTTPS dans le champ URL.
  5. Appuyez Ctrl+Shift+ket poussez le projet vers le référentiel. Ça marche.
Sarvesh Athawale
la source
1
Où est la connexion entre SSH et le remplacement des URL par le protocole HTTPS?
sweisgerber.dev
je veux juste savoir, où diable quelqu'un a-t-il mentionné github ici?
Emad Ha
Cela a fonctionné pour moi, il m'a demandé mes informations d'identification bitbucket, puis c'est bon.
Marlon
13

dans pyCharm,

file|
    v-->settings|
                v-->Version Control|
                                   v-->Git

Ici, changez SSH executablede Built-inenNative

puis appuyez sur applyetclose

Mohideen bin Mohammed
la source
11

J'ai résolu ce problème en rajoutant un référentiel distant: VCS -> Git -> Remotes.

Nikita
la source
4
Pas une bonne option sur mon cas ... Maintenant, je ne peux pas l'ajouter à nouveau, le message " Échec du test de l'URL à distance [...] à distance a échoué: Impossible de lire à partir du référentiel distant. " Obs: Je peux me connecter à github via git cli.
Ricardo
1
Même problème que @Ricardo
Uri Goren
@uri aucune des solutions n'a fonctionné pour moi. J'ai installé 2018 EAP qui a résolu un problème signalé en décembre 2017. Cela a finalement fonctionné! voir aussi le post Update-ssh-key-to-use-new-passphrase
Ricardo
J'ai ajouté des commentaires à la question, mais ils se sont cachés. J'ai donc ajouté une réponse aussi.
Ricardo
Pour une raison inconnue, cela fonctionne pour PHPStorm 2017.4. Merci!
Maksim B.19
5

ce que @yabin ya dit est une solution intéressante, rappelez-vous simplement que: si vous rencontrez toujours le même problème, allez dans Paramètres-Version Control-GitHub et décochez la case Clone git repositories using ssh.

XYz Amos
la source
5

Vous devez générer une nouvelle clé SSH et l'ajouter à votre agent ssh. Pour cela, vous devez suivre ce lien .

Après avoir créé la clé publique et l'ajouter à votre compte github, vous devez utiliser l'option intégrée (non native) sous Paramètres-> Contrôle de version -> Git -> Exécutable SSH dans votre idée Intellij.

abshar
la source
1
Pour moi, passer pour Nativerésoudre le problème, sur Mac
Jeroen Vermeulen - MageHost
J'ai lutté avec ce problème pendant environ une semaine (heureusement, j'ai pu utiliser la ligne de commande git en attendant). Comment j'ai finalement résolu la régénération de mes clés SSH, mais j'ai aussi dû redémarrer mon ordinateur et utiliser la ligne de commande ssh-add.
Crenguta S
3

Nous avons récemment mis à jour d'IntelliJ 12 vers IntelliJ 14 Ultimate et nous avons également rencontré ce problème. Notre solution était de désactiver le proxy dans les paramètres. Nous avons également cessé de nous souvenir des mots de passe une fois, mais nous ne savons peut-être pas si cela aide. Les paramètres de proxy se trouvent sous File-Settings-Apearance & Behavior-System settings-HTTP Proxy.

Koen de Roo
la source
C'est intéressant! Vous aviez donc la même trace de pile?
stuXnet
Nous avons eu le même stacktrace (j'ai changé un peu la réponse btw)
Koen de Roo
3

cela m'a aidé à résoudre le problème actuel

Si vous utilisez macOS Sierra 10.12.2 ou une version ultérieure, vous devrez modifier votre fichier ~ / .ssh / config pour charger automatiquement les clés dans l'agent ssh et stocker les phrases secrètes dans votre trousseau.

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

la source

Jenya Kirmiza
la source
2

J'ai résolu ce problème en supprimant le mot de passe de la clé ssh dans PuTTY.

Steve Borland
la source
2

J'ai résolu ce problème en ajoutant ma clé privée SSH à l'agent ssh dans la commande:

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

Et la configuration Settings --> Version Control --> Git, puis, dans la liste déroulante exécutable SSH, choisissezNative

Volodymyr
la source
1

Pas une solution / solution de contournement mais peut-être une réponse à la question «quel pourrait être le problème»:

Gitlab et la «bibliothèque jetbrains intégrée à ssh» ne fonctionnent pas bien ensemble. La bibliothèque veut utiliser l'algorithme d'échange de clés basé sur SHA1 où gitlab (par défaut) n'autorise que les algorithmes d'échange de clés basés sur SHA2.

Cela a été signalé pour au moins TeamCity ( https://youtrack.jetbrains.com/issue/TW-47704 ).

Le fait que cela puisse également être la cause de votre problème de pull / push dans IntelliJ, et aussi mon problème de push dans PhpStorm est basé sur le jetbrains ASSUMPTION utilise la même `` bibliothèque intégrée '' pour tous leurs logiciels.

ArjanW
la source
0

J'ai eu ce problème avec une fourchette d'un cours en ligne. J'ai cloné ma fourchette et j'ai rencontré une erreur d'autorisation. Je ne pouvais pas comprendre pourquoi il insistait sur le fait que j'étais mon utilisateur de mon autre entreprise. Mais comme le commentateur précédent l'a mentionné, j'avaisClone git repositories using ssh vérifier paramètre et j'avais oublié d'ajouter une clé ssh à mon nouveau compte. Alors je l'ai fait et je n'ai toujours pas pu pousser parce que j'ai eu CETTE erreur. La façon dont je l'ai résolu était de pousser en utilisant le client Github Desktop.

Points à retenir:

  1. Lorsque vous ouvrez un nouveau compte GitHub, assurez-vous de lui ajouter une clé ssh
  2. Utiliser différentes clés ssh pour différents comptes
  3. En général, je rencontre un problème GitHub sur IntelliJ au moins une ou deux fois pour chaque projet. Assurez-vous d'avoir une copie du bureau GitHub et de charger vos projets dedans. Cela peut et vous aidera avec de nombreux problèmes que vous pourriez rencontrer avec Intellij - pas seulement celui-ci. C'est en fait un client GUI vraiment sympa et gratuit!
  4. Il est probablement judicieux de faire ce que @yabin suggère et d'utiliser le client natif sur un Mac
Aron T
la source
0

La seule chose qui m'a aidé dans mon cas (le commutateur SSH-executabe ne fonctionnait pas) était de désactiver le plugin git et git-flow, de redémarrer intellij et de réactiver ces plugins à nouveau ...

Patrick Dorn
la source
0

N'oubliez pas de contacter votre administrateur système.

Parce que dans mon cas, j'avais tout correctement configuré (SSH également ajouté) mais j'ai eu la même erreur

accès au référentiel refusé. fatal: impossible de lire à partir du référentiel distant.

la raison en était que je n'avais qu'un accès en lecture à ce référentiel. Par conséquent, sans perdre votre temps précieux, veuillez vérifier cela en premier. Je vous remercie.

Rahal Kanishka
la source
Vous êtes entré java.io.IOException: Padding in RSA public key!dans le journal alors qu'il n'y a pas d'autorisations suffisantes? C'est intéressant et pourrait indiquer un bogue dans la gestion SSH d'IntelliJ.
stuXnet
0

Si tout le reste échoue, allez sur votre terminal et tapez à partir de votre dossier:

git push origin master

C'est ainsi que les dieux voulaient à l'origine que ce soit.

Wilmer E. Henao
la source
0

J'ai eu ce problème avec WebStorm récemment ( février / 2018 ) et aucune des solutions (alors) précédentes n'a fonctionné pour moi. Après avoir passé quelques heures sur le dépannage et la recherche, j'ai installé la version EAP 2018 et maintenant ça marche!


Un nouveau problème a été signalé en décembre 2017 sur le sous-système IntelliJ Idea> VCS / Git qui a été corrigé dans la version 181.2445 (ou toute dernière version après le 31 / janvier / 2018).

Voir aussi le post Update-ssh-key-to-use-new-passphrase

Ricardo
la source
Merci pour le lien. Pour d'autres TL; DR, le commentaire clé pour moi était Nate: "Une solution qui a fonctionné pour moi: sous Paramètres> Apparence et comportement> Paramètres système> Mots de passe ..." ... Passez à Ne pas enregistrer, oubliez les mots de passe après le redémarrage , Tirez, puis remettez-le en place.
Matthew Weber
0

Le problème est résolu dans mon PC.
paramètres -> Contrôle de version -> Git , puis, dans la liste déroulante exécutable SSH, sélectionnez l' option intégrée .

et installez git une version plus ancienne comme 2.14.2 .
Ça marche bien!

Viral Nakrani
la source
0

Vérifiez les paramètres du proxy Idea si vous essayez de vous connecter à des services cloud tels que github ou bitbucket. Cela peut être fait en recherchant des plugins à installer ou en recherchant des mises à jour logicielles dans le helpmenu. Si les paramètres Internet / proxy ne sont pas corrects, ajoutez des entrées valides ou définissez-les surauto

binithb
la source
0

Cela m'a corrigé (j'utilise SSH, pas HTTPS, et le git natif, pas le intégré) sur MacOS High Sierra (10.13.5) / IntelliJ IDEA 2018.4:

Fichier -> Invalider les caches et redémarrer

connexo
la source
0

J'ai résolu le problème simplement en m'assurant que j'avais l'URL SSH git correcte sans aucun espace de fin:

[email protected]:USERNAME/REPOSITORY.git
Sugoi Reed
la source
0

J'ai essayé toutes les solutions ci-dessus (natif, modification de l'URL du référentiel VCS, mise à jour de Git, mise à jour d'IDEA, invalidation des caches), mais rien ne m'a aidé. Enfin, j'ai trouvé une solution qui fonctionne pour moi.

SOLUTION: J'ai fermé Idea et remplacé le contenu du fichier ~\.IntelliJIdea20xx.x\config\options\git.xmlpar ceci:

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

Ensuite, j'ai commencé IDEA, essayez de vérifier le référentiel SSH GIT et cela fonctionne et les projets existants fonctionnent également. Fait intéressant, lorsque je passe à NATIVE dans Idea Settings, le référentiel ne fonctionne pas.

user3231514
la source
0

J'ai eu le même problème. J'utilisais bitbucket et j'ai eu du mal à extraire / mettre à jour le référentiel sur Intellij. J'ai essayé de changer pour natif et de revenir à intégré, mais cela ne fonctionnait pas. Puis j'ai réalisé que j'avais généré la clé ssh avec une phrase secrète.

J'ai régénéré la clé sans la phrase secrète, puis je l'ai ajoutée au bitbucket. Ça a marché !

Pointeur nul
la source
0

J'ai essayé l' Nativeoption mais ne fonctionne pas pour moi, enfin régénérer la clé ssh à l'ancienne et ajouter l' -moption dans la ssh-keygencommande. IDEA fonctionne également avec l' build-inoption aussi bien.

ssh-keygen -m PEM -t rsa -b 4096 -C "email@..."
Alireza Alallah
la source
0

Lorsque vous ajoutez l'URL distante, changez-la

https://[email protected]/usernameowner/project-name.git

pour ça

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

Marlon
la source
0

J'ai changé de chemin git et cela a fonctionné.

entrez la description de l'image ici

Codeur intelligent
la source
-1

Assurez-vous que vous avez changé le lien vers le référentiel git en HTTPSoption après avoir sélectionné "Native" dans les paramètres IntelliJ si SSHcela ne fonctionne pas.

SilverK
la source