git con IntelliJ IDEA: no se pudo leer desde el repositorio remoto

260

Desde hace unas semanas, no puedo extraer ni empujar desde o hacia el repositorio remoto. Pensé que sucedía al actualizar a IntelliJ IDEA 14, pero también puedo reproducir el problema con IDEA 13.1.5.

La información sobre herramientas dice "Fetch falló fatal: no se pudo leer desde el repositorio remoto".

y la excepción en la pestaña Control de versiones dice

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.

Usando el terminal incorporado de IntelliJ, ejecutándose git -c core.quotepath=false fetch origin --progress --prune, funciona como debería.

De acuerdo con el stacktrace, parece haber un problema con mi KnownHosts, así que eliminé nuestro servidor git ~/.ssh/known_hosts, con la esperanza de que IntelliJ lo inserte nuevamente. Pero el problema aún aparece cuando se actualiza a través de la interfaz de usuario, y no hay ninguna entrada nueva escrita known_hosts; pensando en el almacenamiento en caché del archivo, reinicié IntelliJ, sin éxito.

Al hacer otra git fetchdesde la terminal, ahora me preguntan si quiero agregar el servidor de forma permanente. Después de eso, se ha escrito known_hostsnuevamente, pero IntelliJ todavía no me deja actualizar mi proyecto.

No he encontrado nada sobre este comportamiento en línea, así que supongo que no es un error conocido con la nueva versión IntelliJ. Sin embargo, actualicé a 14.0.2, pero el problema aún existe.

IntelliJ está configurado para usar el ejecutable SSH incorporado.

¿Alguien tiene idea de cuál podría ser el problema aquí?

stuXnet
fuente
¿Agregó manualmente una clave SSH a su repositorio git?
aurelius
@aurelius sí, estamos usando GitLab, y lo publiqué allí en mi perfil.
stuXnet
IntelliJ no está satisfecho con su par de claves pública / privada. ¿Cómo lo generaste?
yole
@yole Probé ambos puttygeny Git GUI, como también fue mi primer pensamiento. ¿Estás seguro de que se trata de mi par de llaves? La excepción parece ser sobre los hosts conocidos: code.google.com/p/connectbot/source/browse/src/com/trilead/ssh2/…
stuXnet
No estoy seguro sobre el voto negativo: parece que hay un problema con las entradas hash / no hash en conocido_hosts. Voy a profundizar un poco más y responderé la pregunta.
stuXnet

Respuestas:

722

Settings --> Version Control --> Git, y luego, en el menú desplegable ejecutable SSH, elija Native

Version Control: Git: SSH executable: For current project

Si esto no ayuda, asegúrese de que su nativo sshy sus gitclientes tengan una versión suficientemente reciente.

yabin ya
fuente
55
Sé que es posible cambiar la implementación de SSH, incluso escribí explícitamente que estoy usando el ejecutable incorporado (lo que no he escrito: native no funciona para mí en Windows) Pero tu publicación no responde mi pregunta cuál podría ser el problema con el ejecutable incorporado.
stuXnet
22
No puede ayudarme
hellboy
8
@Jimbo Solo es mi suposición, pero así es como lo entiendo: incorporado utiliza otro "Usuario" en su repositorio, anteriormente a ese "Usuario" se le permitía enviar archivos y cambios. Ese "Usuario" se restableció en una Actualización y ya no puede hacerlo. Native utiliza la cuenta en la que ha iniciado sesión en su máquina.
AlexG
10
Extraño. Tuve 3 computadoras separadas, todas comenzaron a hacerme esto después de trabajar durante más de 2 años. Esto lo arregló. WTF
Nicholas DiPiazza
11
@NicholasDiPiazza Esto está relacionado con la eliminación de Github de los estándares criptográficos github.com/blog/2507-weak-cryptographic-standards-removed . También este cambio afecta a otro software que utiliza bibliotecas "integradas" (por ejemplo, TeamCity). Su cliente git nativo probablemente esté actualizado, es por eso que este paso lo soluciona.
philsch
68

Vaya a Preferencias> Control de versiones> Git. Asegúrese de que el ejecutable SSH esté configurado en "Nativo". (Si ya es así, cámbielo a "Incorporado", aplíquelo y luego vuelva a cambiar a "Nativo").

Si esto no resuelve su problema, le sugiero que descargue un cliente Git como el cliente GitHub (aplicación de escritorio gratuita) e intente sincronizar su proyecto a través de la aplicación. Luego regrese a IntelliJ y verifique si funciona.

Farbod
fuente
1
Funciona bien en Android Studio también. Este problema me estaba volviendo loco, gracias @Farbod jan!
Javad Sadeqzadeh
1
Alternar SSH executablefuncionó para mí. Yo ya estaba encendido Nativetambién.
nic
1
Para todos los que consideren volver a la versión integrada: considere actualizar primero su SSH nativo. El ejecutable nativo se usa en todo el sistema operativo y se comportará de manera consistente dentro y fuera de su IDE.
milosmns
52

Empecé a tener Could not read from remote repository error recientemente cuando trabajo con mirepositorio. Mis especificaciones:

  • IntelliJ IDEA 2017.3.4 (Ultimate Edition)
  • Configuración -> Control de versiones -> Git -> SSH ejecutable -> Incorporado
  • Fedora Linux

ingrese la descripción de la imagen aquí

Por supuesto, esos problemas ocurrieron solo al intentar empujar / tirar / recuperar etc. desde IDE: ejecutar los mismos comandos desde la línea de comandos funcionó de maravilla.

Solución que funcionó para mí

No quería cambiar del Built-Inejecutable SSH a Native, principalmente porque mi cliente SSH nativo me pide la contraseña cada vez que intento sincronizarme con el repositorio remoto.

Resolví este problema cambiando de URL remota SSH a URL HTTPS. De acuerdo con esta página de ayuda de GitHub , se recomienda utilizar la URL HTTPS en lugar de la SSH .

Cambiar la URL remota de SSHaHTTPS

En IntelliJ IDEA, vaya a VCS -> Git -> Remotes ... , seleccione la fila que contiene "origen" y haga clic en el botón editar. Si aloja su repositorio en GitHub, reemplace su URL SSH de:

[email protected]:USERNAME/REPOSITORY.git

a:

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

También puede obtener su URL HTTPS desde la página de inicio del repositorio de GitHub: haga clic en el botón "Clonar o descargar" y haga clic en el enlace "Usar HTTPS" para mostrar la URL HTTPS de su repositorio:

ingrese la descripción de la imagen aquí

ACTUALIZACIÓN 2018-03-13

JetBrains acaba de lanzar IntelliJ IDEA 2017.3.5 que incluye una solución para el acceso SSH a GitHub - https://blog.jetbrains.com/idea/2018/03/intellij-idea-2017-3-5-fix-for-ssh-access -a-github /

Szymon Stepniak
fuente
2
Esta es la solución que funcionó para mí en un MacBook Pro, PHPStorm 2017.3.4) (30 de enero de 2018 antes de la fecha de compilación necesaria 1/31 mencionada).
Edward Barnard
1
Esta solución funcionó, por lo general, el problema es que muchos usuarios intentan usar la clave SSH para definir el control remoto, pero le da un error. Cambiar de SSH a HTTPS es la solución la mayoría de las veces.
Kourosh
1
usando el enlace basado en https slove mi problema en PhpStorme versión 2018.1.5
dmitri
1
Esta solución funcionó para mí en MacBook Pro, Intellij IDEA.
shaojun lyu
1
También funciona con GitLab para cambiar la URL al enlace https.
Maestro James
23

El cliente SSH integrado de IntelliJ parece tener hashknown_hosts , pero el que tenía tenía sus nombres de host en texto claro.

Cuando eliminé el archivo y dejé que IntelliJ creara uno nuevo, solo con mi servidor GitLab (hash) y nada más, funcionó.

Tampoco es posible mezclarlo: mantenga algunas entradas sin compartir junto con las entradas con hash para IntelliJ. Por lo tanto, debe configurar sus otros clientes SSH para usar hosts hash .

stuXnet
fuente
14
  1. Vaya a Configuración-> Git-> Seleccionar nativo en el menú desplegable ejecutable SSH. (Si no está seleccionado)
  2. Copie el enlace HTTPS de su repositorio de Github.
  3. Vaya a VCS-> Git-> Remotes ..
  4. Edite el origen y pegue el enlace HTTPS en el campo URL.
  5. prensa Ctrl+Shift+k y empuje el proyecto al repositorio. Funciona.
Sarvesh Athawale
fuente
1
¿Dónde está la conexión entre SSH y la sustitución de las URL con el protocolo HTTPS?
sweisgerber.dev
solo quiero saber, ¿dónde demonios alguien mencionó github aquí?
Emad Ha
Esto funcionó para mí, me pidió mis credenciales de bitbucket, entonces está listo.
Marlon
13

en pyCharm,

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

Aquí cambia SSH executablede Built-inaNative

luego presione applyyclose

Mohideen bin Mohammed
fuente
11

Resolví este problema volviendo a agregar el repositorio remoto: VCS -> Git -> Remotes.

Nikita
fuente
44
No es una buena opción en mi caso ... Ahora no puedo volver a agregarlo nuevamente, obteniendo el mensaje " Error de prueba de URL remota [...] remota no válida: no se pudo leer desde el repositorio remoto " . Obs: puedo conectarme github a través de git cli.
Ricardo
1
Mismo problema que @Ricardo
Uri Goren
@uri ninguna de las soluciones funcionó para mí. Instalé 2018 EAP que solucionó un problema reportado en diciembre de 2017. ¡Finalmente funcionó! vea también la publicación Update-ssh-key-to-use-new-passphrase
Ricardo
Agregué comentarios a la pregunta, pero se ocultaron. Así que también agregué una respuesta .
Ricardo
Por razones desconocidas, funciona para PHPStorm 2017.4. ¡Gracias!
Maksim B.
5

lo que @yabin ya dice es una solución genial, solo recuérdele que: si aún tiene el mismo problema, vaya a Configuración-Control de versiones-GitHub y desactive la casilla Clone git repositories using ssh .

XYz Amos
fuente
5

Debe generar una nueva clave SSH y agregarla a su agente ssh. Para eso debes seguir este enlace .

Después de crear la clave pública y agregarla a su cuenta de github, debe usar la opción incorporada (no nativa) en Configuración-> Control de versiones -> Git -> SSH ejecutable en su Idea Intellij.

abshar
fuente
1
Para mí, cambiar para Nativeresolver el problema, en Mac
Jeroen Vermeulen - MageHost
Luché con este problema durante aproximadamente una semana (por suerte, podría usar la línea de comando git mientras tanto). Cómo lo resolví finalmente fue regenerar mis claves SSH, pero también tuve que reiniciar mi computadora y usar la línea de comando ssh-add.
Crenguta S
3

Recientemente hemos actualizado de IntelliJ 12 a IntelliJ 14 Ultimate y también hemos encontrado este problema. Nuestra solución fue deshabilitar el proxy en la configuración. También dejamos de recordar las contraseñas una vez, pero podría no estar seguro si eso ayuda. La configuración de proxy se encuentra en Configuración de archivo-Aspecto y comportamiento-Configuración del sistema-Proxy HTTP.

Koen de Roo
fuente
¡Eso es interesante! ¿Entonces tuviste el mismo stacktrace?
stuXnet
Teníamos el mismo stacktrace (he cambiado la respuesta un poco por cierto)
Koen de Roo
3

esto me ayudó a solucionar el problema actual

Si está utilizando macOS Sierra 10.12.2 o posterior, deberá modificar su archivo ~ / .ssh / config para cargar automáticamente las claves en el agente ssh y almacenar frases de contraseña en su llavero.

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

fuente

Jenya Kirmiza
fuente
2

Resolví este problema eliminando la contraseña de la clave ssh en PuTTY.

Steve Borland
fuente
2

Lo resolví agregando mi clave privada SSH al agente ssh en el comando:

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

Y configurando Settings --> Version Control --> Git, y luego, en el menú desplegable ejecutable SSH, elijaNative

Volodymyr
fuente
1

No es una solución / solución alternativa, sino quizás una respuesta a la pregunta "¿cuál podría ser el problema?":

Gitlab y los 'jetbrains integrados en la biblioteca ssh' no funcionan bien juntos. La biblioteca quiere usar el algoritmo de intercambio de claves basado en SHA1 donde gitlab (predeterminado) solo permite algoritmos de intercambio de claves basados ​​en SHA2.

Esto se informó al menos para TeamCity ( https://youtrack.jetbrains.com/issue/TW-47704 ).

El hecho de que también podría ser la causa de su problema de extracción / inserción en IntelliJ, y también mi problema de inserción en PhpStorm se basa en que los jetbrains ASSUMPTION usan la misma 'biblioteca incorporada' para todo su software.

ArjanW
fuente
0

Tuve este problema con un tenedor de algún curso en línea. Cloné mi tenedor y encontré un error de permisos. No podía entender por qué insistía en que era mi usuario de mi otra compañía. Pero como mencionó el comentarista anterior, tuve elClone git repositories using ssh , verifiqué configuración y olvidé agregar una clave ssh a mi nueva cuenta. Entonces lo hice y aún no pude presionar porque recibí ESTE error. La forma en que lo resolví fue presionar usando el cliente Github Desktop.

Comida para llevar:

  1. Cuando abra una nueva cuenta de GitHub, asegúrese de agregarle una clave ssh
  2. Use diferentes claves ssh para diferentes cuentas
  3. En general, me encuentro con algún problema de GitHub en IntelliJ al menos una o dos veces para cada proyecto. Asegúrese de tener una copia del escritorio de GitHub y cargue sus proyectos en él. Puede y lo ayudará con muchos problemas que pueda encontrar con Intellij, no solo este. En realidad, es un cliente GUI realmente agradable y gratuito.
  4. Probablemente tenga sentido hacer lo que @yabin sugiere y usar el cliente nativo en una Mac
Aron T
fuente
0

Lo único que ayudó en mi caso (cambiar SSH-ejecutable no funcionó) fue desactivar el complemento git y git-flow, reiniciar intellij y reactivar esos complementos nuevamente ...

Patrick Dorn
fuente
0

No olvide ponerse en contacto con el administrador de su sistema.

Porque en mi caso tenía todo correctamente configurado (también se agregó SSH) pero recibí el mismo error

acceso al repositorio denegado. fatal: no se pudo leer desde el repositorio remoto.

la razón era que solo tenía acceso de lectura a ese repositorio. Por lo tanto, sin perder su valioso tiempo, verifique eso como lo primero. Gracias.

Rahal Kanishka
fuente
¿Ingresó java.io.IOException: Padding in RSA public key!al registro cuando no hay permisos suficientes? Eso es interesante y podría indicar un error en el manejo de SSH de IntelliJ.
stuXnet
0

Si todo lo demás falla, simplemente vaya a su terminal y escriba desde su carpeta:

git push origin master

Así es como los dioses originalmente querían que fuera.

Wilmer E. Henao
fuente
0

Tuve este problema con WebStorm recientemente ( febrero / 2018 ) y ninguna de las (entonces) soluciones anteriores me funcionó. Después de pasar algunas horas resolviendo problemas e investigando, instalé la versión EAP 2018 y ahora funciona.


Se informó un nuevo problema en diciembre de 2017 sobre el subsistema IntelliJ Idea> VCS / Git que se corrigió en la compilación 181.2445 (o cualquier compilación más reciente después del 31 / ene / 2018).

Ver también la publicación Update-ssh-key-to-use-new-passphrase

Ricardo
fuente
Gracias por el enlace. Para otros TL; DR, el comentario clave para mí fue Nate: "Una solución que funcionó para mí: en Configuración> Apariencia y comportamiento> Configuración del sistema> Contraseñas ..." ... Cambie a No guardar, olvide las contraseñas después de reiniciar , Haga el Pull, luego vuelva a encenderlo.
Matthew Weber
0

El problema está resuelto en mi pc.
configuración -> Control de versiones -> Git , y luego, en el menú desplegable ejecutable SSH, seleccione la opción integrada .

e instalar git versión anterior algo así como 2.14.2 .
¡Funciona bien!

Nakrani viral
fuente
0

Verifique la configuración de proxy de Idea si está intentando conectarse a servicios en la nube como github o bitbucket. Esto se puede hacer buscando complementos para instalar o buscando actualizaciones de software en el helpmenú. Si la configuración de Internet / proxy no es correcta, agregue entradas válidas o configúrelo enauto

binithb
fuente
0

Esto me lo arregló (estoy usando SSH, no HTTPS, y el git nativo, no el incorporado) en MacOS High Sierra (10.13.5) / IntelliJ IDEA 2018.4:

Archivo -> Invalidar cachés y reiniciar

connexo
fuente
0

Resolví el problema simplemente asegurándome de tener la URL correcta de git SSH sin espacios finales:

[email protected]:USERNAME/REPOSITORY.git
Caña Sugoi
fuente
0

Probé todas las soluciones anteriores (Native, cambiando la URL del repositorio de VCS, actualizando Git, actualizando IDEA, invalidando Caches), pero nada me ayudó. Finalmente encontré una solución que funciona para mí.

SOLUCIÓN: Cerré Idea y reemplacé el contenido del archivo ~\.IntelliJIdea20xx.x\config\options\git.xmlcon esto:

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

Luego comencé IDEA, trato de retirar el repositorio SSH GIT y funciona y los proyectos existentes también funcionan. Un hecho interesante es que cuando cambio a NATIVE en Configuración de ideas, el repositorio no funciona.

usuario3231514
fuente
0

Yo tuve el mismo problema. Estaba usando bitbucket y tuve problemas para extraer / actualizar el repositorio en Intellij. Intenté cambiar a nativo y volver a incorporarlo, pero no estaba funcionando. Luego me di cuenta de que había generado la clave ssh con una frase de contraseña.

Regenere la clave sin la frase de contraseña y luego la agregué al bitbucket. Funcionó !

Puntero nulo
fuente
0

Intenté la Nativeopción pero no funciona para mí, finalmente regenere la clave ssh de la manera antigua y agregue la -mopción en el ssh-keygencomando. IDEA también funciona con build-inopción como bien.

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

Al agregar la URL remota, cámbiela de esta

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

a esto

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

Marlon
fuente
0

Cambié el camino de git y funcionó.

ingrese la descripción de la imagen aquí

Codificador inteligente
fuente
-1

Asegúrese de haber cambiado el enlace al repositorio de git a la HTTPSopción después de haber seleccionado "Nativo" en la configuración de IntelliJ si SSHno funciona.

SilverK
fuente