git con IntelliJ IDEA: impossibile leggere dal repository remoto


260

Da alcune settimane, non sono in grado di estrarre o spingere da o verso il repository remoto. Ho pensato che sarebbe successo durante l'aggiornamento a IntelliJ IDEA 14, ma posso riprodurre anche il problema con IDEA 13.1.5.

La descrizione comandi dice "Recupero non riuscito: impossibile leggere dal repository remoto".

e si legge l'eccezione nella scheda Controllo versione

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.

Utilizzando il terminale integrato di IntelliJ, in esecuzione git -c core.quotepath=false fetch origin --progress --prune, funziona esattamente come dovrebbe.

Secondo lo stacktrace, sembra che ci sia un problema con il mio KnownHosts, quindi ho eliminato il nostro server git ~/.ssh/known_hosts, sperando che IntelliJ lo inserisse di nuovo. Ma il problema si presenta ancora durante l'aggiornamento tramite l'interfaccia utente e non è stata scritta alcuna nuova voce known_hosts; pensando a un po 'di memorizzazione nella cache del file, ho riavviato IntelliJ, senza successo.

Quando ne faccio un altro git fetchdal terminale, ora mi viene chiesto se voglio aggiungere permanentemente il server. Successivamente, è stato scritto di known_hostsnuovo, ma IntelliJ non mi consente ancora di aggiornare il mio progetto.

Non ho trovato nulla su questo comportamento online, quindi suppongo che non sia un bug noto con la nuova versione di IntelliJ. Tuttavia, ho aggiornato alla 14.0.2, ma il problema persiste.

IntelliJ è configurato per utilizzare l'eseguibile SSH incorporato.

Qualcuno ha la minima idea di quale potrebbe essere il problema qui?


Hai aggiunto manualmente una chiave SSH al tuo repository git?
aurelius,

@aurelius sì, stiamo usando GitLab e l'ho pubblicato lì nel mio profilo.
stuXnet,

IntelliJ non è soddisfatto della coppia di chiavi pubblica / privata. Come lo hai generato?
yole,

@yole ho provato entrambi puttygene Git GUI, come è stato anche il mio primo pensiero. Sei sicuro che riguardi la mia coppia di chiavi? L'eccezione sembra riguardare gli host conosciuti: code.google.com/p/connectbot/source/browse/src/com/trilead/ssh2/…
stuXnet,

Non sono sicuro del downvote - sembra che ci sia un problema con le voci con hash / senza hash in known_hosts. Ho intenzione di approfondire un po 'di più e rispondere alla domanda.
stuXnet,

Risposte:


721

Settings --> Version Control --> Git, quindi, nel menu a discesa Eseguibile SSH, selezionare Native

Controllo versione: Git: eseguibile SSH: per il progetto corrente

Se questo non aiuta, assicurati che il tuo nativo sshe giti tuoi client abbiano una versione sufficientemente recente.


5
So che è possibile cambiare l'implementazione di SSH, ho anche scritto esplicitamente che sto usando l'eseguibile integrato (quello che non ho scritto: nativo non funziona per me su Windows) Ma il tuo post non risponde la mia domanda quale potrebbe essere il problema con l'eseguibile incorporato.
stuXnet,

22
Non posso aiutarmi
Hellboy

8
@Jimbo Solo il mio presupposto, ma è così che lo capisco: Built in utilizza un altro "Utente" nel tuo repository, in precedenza a "Utente" è stato permesso di inviare file e modifiche. Quel "Utente" è stato reimpostato in un aggiornamento e non è più possibile. Native utilizza l'account a cui hai effettuato l'accesso sul tuo computer.
AlexG

10
Strano. ho avuto 3 computer separati tutti hanno iniziato a farmi questo dopo aver lavorato per 2+ anni. questo risolto. WTF
Nicholas DiPiazza,

11
@NicholasDiPiazza Questo è legato al fatto che Github rimuove gli standard crittografici github.com/blog/2507-weak-cryptographic-standards-removed . Anche altri software che utilizzano librerie "integrate" (ad esempio TeamCity) sono interessati da questa modifica. Il tuo client git nativo è probabilmente aggiornato, ecco perché questo passaggio lo risolve.
philsch,

68

Vai su Preferenze> Controllo versione> Git. Assicurati che l'eseguibile SSH sia impostato su "Nativo". (Se è già così, commutalo su "Incorporato", applicalo e poi di nuovo su "Nativo".).

Se ciò non risolve il problema, suggerirei di scaricare un client Git come GitHub client (app desktop gratuita) e provare a sincronizzare il progetto tramite l'app. Quindi tornare a IntelliJ e verificare se funziona.


1
Funziona bene anche su Android Studio. Questo problema mi stava facendo impazzire, grazie @Farbod Jan!
Javad Sadeqzadeh,

1
Toggling ha SSH executablefunzionato per me. Anch'io ero già su Native.
nic

1
Per tutti coloro che stanno pensando di tornare al built-in: considera di aggiornare prima il tuo SSH nativo. L'eseguibile nativo viene utilizzato in tutto il sistema operativo e si comporterà in modo coerente all'interno e all'esterno dell'IDE.
milosmns,

52

Ho iniziato a ricevere Could not read from remote repositoryerrori di recente quando lavoro con il miorepository. Le mie specifiche:

  • IntelliJ IDEA 2017.3.4 (Ultimate Edition)
  • Impostazioni -> Controllo versione -> Git -> File eseguibile SSH -> Integrato
  • Fedora Linux

inserisci qui la descrizione dell'immagine

Ovviamente questi problemi si sono verificati solo quando si è tentato di eseguire il push / pull / fetch ecc. Dall'IDE: l'esecuzione degli stessi comandi dalla riga di comando ha funzionato come un incantesimo.

Soluzione che ha funzionato per me

Non volevo passare dall'eseguibile Built-InSSH a Native, soprattutto perché il mio client SSH nativo mi chiede la password ogni volta che provo a sincronizzarmi con il repository remoto.

Ho risolto questo problema passando dall'URL remoto SSH all'URL HTTPS. Secondo questa pagina di aiuto di GitHub - si consiglia di utilizzare l'URL HTTPS anziché quello di SSH .

Modifica dell'URL remoto da SSHaHTTPS

In IntelliJ IDEA vai su VCS -> Git -> Telecomandi ... , seleziona la riga contenente "origine" e fai clic sul pulsante Modifica. Se si ospita il repository su GitHub, sostituire l'URL SSH da:

git@github.com:USERNAME/REPOSITORY.git

per:

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

Puoi anche ottenere l'URL HTTPS dalla home page del repository GitHub: fai clic sul pulsante "Clona o scarica" ​​e fai clic sul link "Usa HTTPS" per visualizzare l'URL HTTPS del tuo repository:

inserisci qui la descrizione dell'immagine

AGGIORNAMENTO 2018-03-13

JetBrains ha appena rilasciato IntelliJ IDEA 2017.3.5 che include la correzione per l'accesso SSH a GitHub - https://blog.jetbrains.com/idea/2018/03/intellij-idea-2017-3-5-fix-for-ssh-access -to-github /


2
Questa è la soluzione che ha funzionato per me su un MacBook Pro, PHPStorm 2017.3.4) (30 gennaio 2018 prima della nota data di costruzione 1/31 necessaria).
Edward Barnard,

1
Questa soluzione ha funzionato, di solito, il problema è che molti utenti tentano di utilizzare la chiave SSH per definire remoto, ma ti dà un errore. Il passaggio da SSH a HTTPS è la soluzione il più delle volte.
Kourosh,

1
utilizzando il link basato su https slove il mio problema sulla versione PhpStorme 2018.1.5
dmitri

1
Questa soluzione ha funzionato per me su MacBook Pro, Intellij IDEA.
Shaojun Lyu,

1
Funziona anche con GitLab per cambiare l'URL in collegamento https.
Master James,

23

Il client SSH integrato di IntelliJ sembra avere il suo hashknown_hosts , ma quello che avevo avuto i suoi nomi host in chiaro.

Quando ho eliminato il file e ho lasciato che IntelliJ ne creasse uno nuovo, con solo il mio server (con hash) GitLab e nient'altro, funzionava.

Inoltre, non è possibile mescolarlo: mantenere alcune voci non cancellate insieme a voci con hash per IntelliJ. Pertanto, è necessario configurare gli altri client SSH per utilizzare host con hash .


14
  1. Vai su Impostazioni-> Git-> Seleziona Nativo nel menu a discesa eseguibile SSH. (Se non è selezionato)
  2. Copia il link HTTPS dal tuo repository Github.
  3. Vai a VCS-> Git-> Telecomandi ..
  4. Modifica l'origine e incolla il collegamento HTTPS nel campo URL.
  5. Premere Ctrl+Shift+ke spingere il progetto nel repository. Funziona.

1
Dov'è la connessione tra SSH e la sostituzione degli URL con il protocollo HTTPS?
sweisgerber.dev,

voglio solo sapere, dove diavolo qualcuno ha menzionato Github qui?
Emad Ha,

Questo ha funzionato per me, mi ha chiesto le mie credenziali di bitbucket, quindi va bene.
Marlon,

13

in pyCharm,

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

Qui cambia SSH executable da Built-ininNative

quindi premere applyeclose


11

Ho risolto questo problema aggiungendo nuovamente il repository remoto: VCS -> Git -> Telecomandi.


4
Non è una buona opzione sul mio caso ... Ora non riesco ad aggiungerlo di nuovo, ricevendo il messaggio " Test URL remoto remoto [...] non valido non riuscito: impossibile leggere dal repository remoto. " Obs: Non riesco a connettermi github tramite git cli.
Ricardo,

1
Stesso numero di @Ricardo
Uri Goren il

@uri nessuna delle soluzioni ha funzionato per me. Ho installato EAP 2018 che ha risolto un problema segnalato a dicembre 2017. Finalmente ha funzionato! vedi anche il post Update-ssh-key-to-use-new-passphrase
Ricardo,

Ho aggiunto commenti alla domanda, ma sono stati nascosti. Quindi ho aggiunto anche una risposta .
Ricardo

Per motivi sconosciuti, funziona con PHPStorm 2017.4. Grazie!
Maksim B.

5

quello che @yabin ya dice è una soluzione interessante, ricordati che: se hai ancora lo stesso problema, vai su Impostazioni-Versione Controllo-GitHub e deseleziona il Clone git repositories using ssh.


5

Devi generare una nuova chiave SSH e aggiungerla al tuo agente ssh. Per questo dovresti seguire questo link .

Dopo aver creato la chiave pubblica e averla aggiunta al tuo account github, dovresti usare l'opzione Built-in (non nativa) in Impostazioni-> Controllo versione -> Git -> Eseguibile SSH nella tua Intellij Idea.


1
Per me il passaggio a Nativerisolto il problema, su Mac
Jeroen Vermeulen - MageHost,

Ho lottato con questo problema per circa una settimana circa (per fortuna, nel frattempo ho potuto usare la riga di comando git) .. Come ho finalmente risolto stava rigenerando le mie chiavi SSH, ma ho anche dovuto riavviare il computer e utilizzare la riga di comando ssh-add.
Crenguta S

3

Abbiamo recentemente aggiornato da IntelliJ 12 a IntelliJ 14 Ultimate e abbiamo riscontrato anche questo problema. La nostra soluzione era disabilitare il proxy nelle impostazioni. Abbiamo anche smesso di ricordare le password una volta, ma potremmo non essere sicuri se questo aiuta. Le impostazioni del proxy sono in Impostazioni file-Aspetto e comportamento-Impostazioni di sistema-Proxy HTTP.


Interessante! Quindi hai avuto lo stesso stacktrace?
stuXnet,

Abbiamo avuto lo stesso stacktrace (ho cambiato la risposta un po 'tra l'altro)
Koen de Roo,

3

questo mi ha aiutato a risolvere il problema attuale

Se stai usando macOS Sierra 10.12.2 o successivo, dovrai modificare il tuo file ~ / .ssh / config per caricare automaticamente le chiavi nell'agente ssh e memorizzare le passphrase nel tuo portachiavi.

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

fonte


2

Ho risolto questo problema rimuovendo la password per la chiave ssh in PuTTY.


2

Ho risolto questo aggiungendo la mia chiave privata SSH all'agente ssh nel comando:

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

E impostare Settings --> Version Control --> Git, quindi, nel menu a discesa Eseguibile SSH, selezionareNative


1

Non una soluzione / soluzione alternativa, ma forse una risposta alla domanda "quale potrebbe essere il problema":

Gitlab e i "jetbrain integrati nella libreria ssh" non funzionano bene insieme. La libreria desidera utilizzare l'algoritmo di scambio di chiavi basato su SHA1 dove gitlab (impostazione predefinita) consente solo gli algoritmi di scambio di chiavi basati su SHA2.

Questo è stato segnalato per almeno TeamCity ( https://youtrack.jetbrains.com/issue/TW-47704 ).

Il fatto che potrebbe anche essere la causa del tuo problema pull / push in IntelliJ, e anche il mio problema push in PhpStorm si basa sui jetbrains ASSUMPTION che usano lo stesso "libreria integrata" per tutto il loro software.


0

Ho avuto questo problema con una forchetta da qualche corso online. Ho clonato il mio fork e ho riscontrato un errore di autorizzazione. Non riuscivo a capire perché insistesse sul fatto che ero il mio utente di un'altra mia azienda. Ma come ha detto il commentatore precedente, avevo Clone git repositories using sshverificato l' impostazione e mi ero dimenticato di aggiungere una chiave ssh al mio nuovo account. Così ho fatto e quindi non ho potuto spingere perché ho avuto QUESTO errore. Il modo in cui ho risolto è stato quello di spingere usando il client Github Desktop.

Asporto:

  1. Quando apri un nuovo account GitHub, assicurati di aggiungere una chiave ssh ad esso
  2. Utilizzare chiavi ssh diverse per account diversi
  3. In generale mi imbatto in qualche problema di GitHub su IntelliJ almeno una o due volte per ogni progetto. Assicurati di avere una copia del desktop GitHub e carica i tuoi progetti. Può e ti aiuterà con molti problemi che potresti incontrare con Intellij, non solo con questo. In realtà è davvero un bel client GUI e gratuito!
  4. Probabilmente ha senso fare ciò che @yabin suggerisce e utilizzare il client nativo su un Mac

0

L'unica cosa che mi ha aiutato nel mio caso (switch SSH-execabe non ha funzionato) è stata disattivare il plugin git e git-flow, riavviare intellij e riattivare nuovamente quei plugin ...


0

Non dimenticare di contattare l'amministratore di sistema.

Perché nel mio caso avevo tutto correttamente configurato (anche SSH aggiunto) ma ho avuto lo stesso errore

accesso al repository negato. fatale: impossibile leggere dal repository remoto.

il motivo era che avevo solo accesso in lettura a quel repository. Pertanto, senza sprecare il tuo tempo prezioso, controlla che come prima cosa. Grazie.


Sei entrato java.io.IOException: Padding in RSA public key!nel registro quando non ci sono autorizzazioni sufficienti? È interessante e potrebbe indicare un bug nella gestione SSH di IntelliJ.
stuXnet,

0

Se tutto il resto fallisce basta andare sul tuo terminale e digitare dalla tua cartella:

git push origin master

Questo è il modo in cui gli dei originariamente volevano che fosse.


0

Ho avuto questo problema con WebStorm di recente ( febbraio / 2018 ) e nessuna delle soluzioni (allora) precedenti ha funzionato per me. Dopo aver trascorso alcune ore nella risoluzione dei problemi e nella ricerca, ho installato la versione EAP 2018 e ora funziona!


Un nuovo numero riportato a dicembre 2017 sul sottosistema IntelliJ Idea> VCS / Git è stato risolto nella build 181.2445 (o qualsiasi altra build successiva al 31 / Jan / 2018).

Vedi anche il post Update-ssh-key-to-use-new-passphrase


Grazie per il link. Per altri TL; DR, il commento chiave per me era Nate: "Una soluzione che ha funzionato per me: in Impostazioni> Aspetto e comportamento> Impostazioni di sistema> Password ..." ... Passa a Non salvare, dimentica le password dopo il riavvio , Esegui il pull, quindi ripristinalo.
Matthew Weber,

0

Il problema è risolto nel mio pc.
impostazioni -> Controllo versione -> Git , quindi, nel menu a discesa Eseguibile SSH, selezionare l' opzione integrata .

e installa git versione precedente qualcosa come 2.14.2 .
Funziona bene!


0

Controlla le impostazioni del proxy Idea se stai provando a connetterti a servizi cloud come github o bitbucket. Questo può essere fatto cercando plug-in da installare o controllando gli aggiornamenti software nel helpmenu. Se le impostazioni Internet / proxy non sono corrette, aggiungere voci valide o impostarle suauto


0

Questo è stato risolto per me (sto usando SSH, non HTTPS, e il git nativo, non quello incorporato) su MacOS High Sierra (10.13.5) / IntelliJ IDEA 2018.4:

File -> Cache e riavvio non validi


0

Ho risolto il problema semplicemente assicurandomi di avere l'URL SSH git corretto senza spazi finali:

git@github.com:USERNAME/REPOSITORY.git


0

Ho provato tutte le soluzioni sopra (nativo, cambiando l'URL del repository VCS, aggiornando Git, aggiornando IDEA, invalidando le cache), ma nulla mi ha aiutato. Finalmente ho trovato una soluzione che funziona per me.

SOLUZIONE: ho chiuso Idea e sostituito il contenuto del file ~\.IntelliJIdea20xx.x\config\options\git.xmlcon questo:

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

Quindi ho avviato IDEA, ho provato a controllare il repository SSH GIT e funziona e anche i progetti esistenti funzionano. Il fatto interessante è che quando passo a NATIVE in Impostazioni idea, il repository non funziona.


0

Ho avuto lo stesso problema. Stava usando Bitbucket e ha avuto problemi a estrarre / aggiornare il repository su Intellij. Ho provato a cambiare in nativo e di nuovo in incorporato, ma non funzionava. Poi ho capito che avevo generato la chiave ssh con una passphrase.

Ho rigenerato la chiave senza passphrase e poi l'ho aggiunta al bitbucket. Ha funzionato !


0

Ho provato l' Nativeopzione ma non funziona per me, infine rigenerare la chiave ssh alla vecchia maniera e aggiungere l' -mopzione al ssh-keygencomando. anche IDEA funziona con l' build-inopzione come bene.

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

0

Quando aggiungi l'URL remoto, modificalo da questo

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

a questa

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



-1

Assicurarsi di aver modificato il collegamento al repository git HTTPSsull'opzione dopo aver selezionato "Nativo" nelle impostazioni di IntelliJ se SSHnon funziona.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.