web-dev-qa-db-fra.com

git avec IntelliJ IDEA: impossible de lire à partir d'un référentiel distant

Depuis quelques semaines, je ne suis plus en mesure de tirer ou de pousser du 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 reproduire le problème avec IDEA 13.1.5 également.

L'info-bulle indique "Echec de la récupération Fatal: Impossible de lire à partir du référentiel distant."

et l’exception dans l’onglet Contrôle de version 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, exécutant git -c core.quotepath=false fetch Origin --progress --Prune, cela fonctionne comme il se doit.

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

Lors de l'exécution d'un autre git fetch à partir du terminal, on me demande maintenant si je veux ajouter le serveur de manière permanente. Après cela, il a de nouveau été écrit dans known_hosts, mais IntelliJ ne me permet toujours pas de mettre à jour mon projet.

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

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

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

234
stuXnet

Le client SSH intégré à IntelliJ semble hacher son known_hosts , mais celui que j'avais avait ses noms d'hôtes en clair.

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

Il est également impossible de le mélanger - conservez quelques entrées non hachées ensemble avec des entrées hachées pour IntelliJ. Donc, vous devez configurer vos autres clients SSH pour utiliser des hôtes hachés .

19
stuXnet

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

 Version Control: Git: SSH executable: For current project

Si cela ne vous aide pas, assurez-vous que vos clients ssh et git natifs ont une version suffisamment récente.

691
yabin ya

Allez dans Préférences> Contrôle de version> Git. Assurez-vous que l'exécutable SSH est défini sur «Natif». (Si c'est déjà le cas, réglez-le sur «Intégré», appliquez-le, puis à nouveau sur «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.

67
Farbod

J'ai récemment commencé à avoir l'erreur Could not read from remote repository en travaillant avec mon référentiel github . Mes specs:

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

enter image description here

Bien sûr, ces problèmes ne se produisaient que lorsque vous tentiez de pousser/extraire/récupérer, etc. à partir de IDE - l'exécution des mêmes commandes à partir de la ligne de commande fonctionnait à merveille.

Solution qui a fonctionné pour moi

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

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

Modification de l'URL distante de SSH à HTTPS

Dans IntelliJ IDEA, accédez à 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", puis sur le lien "Utiliser HTTPS" pour afficher l'URL HTTPS de votre référentiel:

enter image description here

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/intell-idea-2017-3-5- fix-for-ssh-access-to-github /

40
Szymon Stepniak

dans pyCharm,

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

Ici, changez SSH executable de Built-in en Native

puis appuyez sur apply et close

13
  1. Allez dans Paramètres-> Git-> Sélectionnez Natif dans la liste déroulante des exécutables SSH. (S'il n'est pas sélectionné)
  2. Copiez le lien HTTPS à partir de votre référentiel Github.
  3. Allez à VCS-> Git-> Télécommandes ..
  4. Modifiez le lien Origine et collage HTTPS dans le champ URL.
  5. Appuyez sur Ctrl+Shift+k et placez le projet dans le référentiel . Cela fonctionne.
10
Sarvesh Athawale

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

9
Nikita

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.

5
XYz Amos

Vous devez générer une nouvelle clé SSH et l'ajouter à votre agent ssh. Pour que vous devriez suivre ce link .

Une fois que vous avez créé la clé publique et que vous l'avez ajoutée à votre compte github, vous devez utiliser l'option Built-in (non native) sous Setting-> Version Control -> Git -> SSH dans votre idée Intellij Idea.

5
abshar

Nous avons récemment mis à jour d'IntelliJ 12 à IntelliJ 14 Ultimate et nous avons également rencontré ce problème. Notre solution consistait à désactiver le proxy dans les paramètres. Nous avons également arrêté de mémoriser les mots de passe une fois, mais nous ne sommes peut-être pas sûrs que cela aide. Les paramètres de proxy se trouvent sous Fichier-Paramètres-Apearance & Behavior-Paramètres système-Proxy HTTP.

3
Koen de Roo

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

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

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

la source

2
Jenya Kirmiza

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

2
user3429738

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

Gitlab et les "jetbrains intégrés dans la bibliothèque ssh" ne fonctionnent pas bien ensemble. La bibliothèque souhaite 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é sur SHA2. 

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

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

1
ArjanW

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

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

Et définissez Settings --> Version Control --> Git, puis, dans la liste déroulante des exécutables SSH, choisissez Native

1

J'ai essayé l'option Native mais ne fonctionne pas pour moi, enfin régénérer la clé ssh d'une manière ancienne et ajouter l'option -m dans la commande ssh-keygen. aussiIDÉEfonctionne avec l'option build-in aussi bien.

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

J'ai essayé toutes les solutions ci-dessus (native, modification de l'URL du référentiel VCS, mise à jour de Git, mise à jour de IDEA, invalidation de 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.xml par ceci:

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

Ensuite, j'ai démarré IDEA, j'essaie de vérifier le référentiel SSH GIT et tout fonctionne, ainsi que les projets existants. Fait intéressant, lorsque je passe à NATIVE dans les paramètres d'idée, le référentiel ne fonctionne pas.

0
user3231514

Lors de l'ajout de l'URL distante, changez-la

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

pour ça

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

0
Marlon

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

enter image description here

0
Smart Coder

J'ai eu ce problème avec une fourchette d'un cours en ligne. J'ai cloné ma fourche et j'ai rencontré une erreur d'autorisation. Je ne comprenais pas pourquoi il fallait que je sois l’utilisateur de mon autre entreprise. Mais comme l’a mentionné l’intervenant précédent, le paramètre Clone git repositories using ssh a été vérifié et j’ai oublié d’ajouter une clé ssh à mon nouveau compte. Donc je l'ai fait et puis je ne pouvais toujours pas pousser parce que j'avais cette erreur. La façon dont j'ai résolu le problème était de pousser en utilisant le client Github Desktop.

À emporter:

  1. Lorsque vous ouvrez un nouveau compte GitHub, assurez-vous de lui ajouter une clé ssh
  2. Utilisez 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 de disposer d'une copie du bureau GitHub et chargez-y vos projets. Il peut et vous aidera avec beaucoup de problèmes que vous pourriez rencontrer avec Intellij - pas seulement celui-ci. C'est en fait un client graphique vraiment sympa et gratuit!
  4. Il est probablement logique de faire ce que @yabin suggère et d’utiliser le client natif sur un Mac.
0
Aron T

J'ai eu le même problème. Utilisait bitbucket et avait du mal à extraire/mettre à jour le référentiel sur Intellij. J'ai essayé de passer en mode natif et de revenir en mode 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 .

0
NullPointer

Rien ne m'a aidé. Ensuite, j'ai vu que le nom du projet sur l'ordinateur est différent de celui du référentiel git.

Alors j'ai résolu le problème.

0
Phoelix Sky

Ajouter cette réponse, car aucune des réponses ne fonctionnait pour moi. 

J'ai eu des certificats émis - donc suite commande a fait l'affaire. 

git config --global http.sslVerify false

tiré de https://confluence.atlassian.com/fishkb/unable-to-clone-git-repository-due-toself-signed-certificate-376838977.html

0
Gaurav

J'ai résolu le problème simplement en m'assurant d'avoir la bonne URL SSH git sans espaces finaux:

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

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

0
Patrick Dorn

Cela a résolu le problème pour moi (j'utilise SSH, pas HTTPS, et le git natif, pas l'intégration) sur MacOS High Sierra (10.13.5)/IntelliJ IDEA 2018.4:

 File -> Invalidate Caches and Restart

0
connexo

Le problème est résolu dans mon pc.
paramètres -> Contrôle de version -> Git , puis, dans le menu déroulant de l’exécutable SSH, sélectionnez option intégrée

et installez la version précédente de git quelque chose comme 2.14.2 .
Ça marche bien!

0
Viral Nakrani

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

git Push Origin master

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

0
Wilmer E. Henao

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

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

accès au référentiel refusé. fatal: Impossible de lire à distance dépôt.

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

0
Rahal Kanishka

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

0
binithb

J'ai récemment eu ce problème avec WebStorm (février/2018 _) et aucune des solutions précédentes ne fonctionnait pour moi. Après quelques heures consacrées au dépannage et à la recherche, j’ai installé la version 2018 de l’EAP et cela fonctionne maintenant! 


Un nouveau numéro signalé le décembre/2017 sur le sous-système IntelliJ Idea> VCS/Git qui a été corrigé dans la version 181.2445 (ou toute version la plus récente après le 31/Jan/2018).

Voir aussi l'article Update-ssh-key-to-use-new-passphrase

0
Ricardo