git: fatal: no se pudo leer desde el repositorio remoto


356

Estoy tratando de configurar git con http://danielmiessler.com/study/git/#website para administrar mi sitio.

Llegué al último paso en las instrucciones: sitio web de git push + master: refs / heads / master

Estoy trabajando usando la línea de comando git ming32 en win7

$ git push website +master:refs/heads/master
Bill@***.com's password:
Connection closed by 198.91.80.3
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

Un problema aquí puede ser que el programa está buscando a Bill@***.com. cuando me conecto a través de ssh a mi sitio, tengo un nombre de usuario diferente (digamos 'abc'). entonces quizás esto debería ser abc@***.com. Si es así, no sé cómo cambiar esto o si puedo presionar debajo de un alias


1
Tuve el mismo problema, a veces este error ocurre cuando el servidor git no es accesible o tiene algo así como "error interno del servidor".
Morteza Ziyae

2
Primero mire el .git/configarchivo y vea que todo está en orden. Tenía valores incorrectos de set-url y origen para mí.
mixdev



¿me puede mostrar el orden correcto de .git / config y también el .ssh / config ... porque estoy confundido un poco duro.
gumuruh

Respuestas:


134

Puede especificar el nombre de usuario que SSH debe enviar al sistema remoto como parte de la URL de su control remoto. Ponga el nombre de usuario, seguido de un @, antes del nombre de host remoto.

git remote set-url website abc@***.com:path/to/repo

3
ps, ¿hay alguna manera de agregar la contraseña para que no tenga que escribirla?
LDN

15
edite el archivo .git/configque tiene el parámetro de URL remoto
Sayanee

@ user61629: Sé que llego tarde a la fiesta, pero debes considerar usar pares de claves privadas / públicas en lugar de contraseñas.
code_dredd

¿Qué nombre de usuario? ¿Nombre de usuario de computadora o nombre de usuario de github?
Agente Zebra el

11
Para Github, siempre usa el nombre de usuario git. Ejemplo: git@github.com:mayoff/uiimage-from-animated-gif.gitGithub descubre su identidad al observar qué clave SSH envía.
rob mayoff

190

Su clave ssh probablemente se haya eliminado del agente ssh

ssh-add ~/.ssh/id_rsa

donde id_rsa es una clave ssh asociada con git repo


77
¡Esto funcionó para mí! Pasé mucho tiempo tratando de configurar mi archivo ~ / .ssh / config para usar diferentes claves para diferentes hosts, pensé que este archivo era el problema. Al final, debe haber estado usando la clave correcta para el host correcto, pero esa clave se había "eliminado". así ssh-add ~/.ssh/theKeyInQuestionque me puse de nuevo en funcionamiento con este repositorio, no sabía la clave eliminada o lo que significa "eliminado", pero al menos pude volver a autenticarme. SSH es un misterio total para mí incluso después de meses de lidiar con problemas de autenticación. ¡Los problemas de los agentes ssh son una cosa más a tener en cuenta!
Alex Bollbach

Muchas gracias ... Esto finalmente funcionó para mí después de intentar crear, eliminar, etc. las claves SSH en mi cuenta de GitLab ... ¡Gracias!
Bms bharadwaj

Esto resolvió mi problema. Ya tengo la clave ssh recién generada agregada en el servidor. ¡Esta clave necesita ser agregada!
Kashan

1
Esto lo resolvió para mí, no entiendo por qué ... Solía ​​funcionar y, de repente, no, ¿hay algún proceso que elimine la llave del agente, puede suceder por accidente?
Miguel Stevens

¿Por que sucede? Funcionó todo el día pero por la noche dejó de funcionar. Esta respuesta ayudó.
Andrey Semakin

130

Asegúrese de tener la URL correcta en .git/config

url = git@github.com:username/repo.git

Si es tu primer impulso, deberás configurar el flujo ascendente correcto

$ git push -u origin master

Puede verificar qué clave utiliza:

$ ssh -vvv git@github.com

La respuesta debe contener algo como esto:

debug1: Next authentication method: publickey
debug1: Offering RSA public key: ~/.ssh/id_rsa
...
You've successfully authenticated, but GitHub does not provide shell access.

También es posible definir reglas para ssh in ~/.ssh/config, por ejemplo, en base a alias:

   Host github
      HostName github.com 
      User git
      IdentityFile "~/.ssh/id_rsa"

   Host git
      HostName github.com 
      User git
      IdentityFile "~/.ssh/some_other_id"

Puede configurar la conexión a diferentes puertos, usar diferentes nombres de usuario, etc. para cada alias.


1
¡¡Gracias!! En algún momento cuando cloné mi repositorio, urlse configuró en https://github.com/user/repo.git(sin git@github.com) y, por lo tanto, se negó a usar mi clave SSH. Tal vez sea porque lo cloné usando GIthub para Windows originalmente (?)
Jedidja

He tenido que cambiar url = ssh://github.com/RaphaelBossek/dev-atlassian-jira-proman.gita url = ssh://git@github.com/RaphaelBossek/dev-atlassian-jira-proman.gity funcionó de nuevo
Raphael Bossek

Maldita sea, eres increíble. Intenté muchas otras soluciones. Mi url era https: también :(
agrublev

La -vvvsugerencia fue útil para mí. Ahora veo que dice "Conexión cerrada por XXX.XXX.XXX.X puerto 22".
Ryan

Ahhh, DeployHQ dice "BitBucket actualmente está experimentando problemas menores de servicio. Por favor, consulte su página de estado para obtener más información. Status.bitbucket.org " Bingo.
Ryan

123

Estaba enfrentando el mismo problema hace un tiempo ...

mi .git / config tenía

url = git@github.com:manishnakar/polymer-demo.git

Lo reemplacé con

url = https://github.com/manishnakar/polymer-demo.git 

y funciona ahora :)


8
¿Cómo es que esto no está mejor clasificado? git @ github no lo hace totalmente el trabajo para mí
hlitz

3
Si el propietario del repositorio no ha configurado las sshclaves, es probable que tenga este problema. La solución como se indica es usar httpsen su lugar, o configurar el propietario del repositoriossh
RyanNerd

@smileham esto cambia el enlace distante con el repositorio de una autenticación basada en ssh a un protocolo https (solicitará usr / pwd si es necesario)
Vincent Chalmel

Esta es la respuesta correcta, funcionó al instante para mí.
Kingston Fortune

Para cualquier persona que se git remote set-url ...equivocó como yo O que tontamente tiene un Alfabeto de mayúsculas y minúsculas en su nombre de usuario (por ejemplo, PeDro) como yo (!) Debería seguir esto. Funcionó :)
Pe Dro

23

Intente eliminar la variable de entorno GIT_SSH con unset GIT_SSH. Esta fue la causa de mi problema.


1
Funciona ... Me pregunto de dónde obtuve la variable de entorno GIT_SSH de :)
StrangeLoop

1
Para Windows, elimine la variable de entorno GIT_SSH del menú de opciones avanzadas. Trabajó para mi.
splintercell

¿Cómo? ¿Qué escribo en la terminal para hacer eso?
Agente Zebra el

17

Asegúrese de que ssh-agent se esté ejecutando ejecutando el siguiente comando en su terminal:

eval $(ssh-agent -s)

Fuente: documentación de Github


Esto también soluciona un problema para mí. Gracias
Ahmad

Esto también me lo arregló. ¿Hay algo que debería hacer para asegurarme de que se esté ejecutando en el futuro? ¿Como ponerlo como una entrada en mi .zshrcarchivo?
Brady Dowling

14

Esto generalmente se debe a que la clave SSH no coincide con el control remoto.

Soluciones:

  1. Vaya a la terminal y escriba el siguiente comando (Mac, Linux) reemplazar con su identificación de correo electrónico.

    ssh-keygen -t rsa -C "you@email.com"

  2. Copie la clave generada usando el siguiente comando a partir de la palabra ssh.

    cat ~ / .ssh / id_rsa.pub

  3. Péguelo en github, bitbucket o gitlab respectivo de su control remoto.
  4. Guárdalo

9

Yo tuve el mismo problema.

Este error significa que no ha especificado su ubicación de URL remota sobre la cual se insertará su código.

Puede configurar la URL remota de 2 maneras (principalmente):

  1. Especifique la URL remota mediante el comando de ejecución en Git Bash.

    • Navega a tu directorio de proyectos

    • Abrir Git Bash

    • Ejecutar comando:

      • git remote set-url origin <https://abc.xyz/USERNAME/REPOSITORY.git>
  2. Mencione la URL remota directa en el archivo de configuración

    • Navega a tu directorio de proyectos

    • Mover a la carpeta .git

    • Abrir archivo de configuración en el editor de texto

    • Copiar y pegar debajo de las líneas

      • [remote "origin"] url = https://abc.xyz/USERNAME/REPOSITORY.git fetch = +refs/heads/*:refs/remotes/origin/*

Para obtener información más detallada, visite este enlace .



7

Yo tenía el mismo error. La solución era la siguiente: he corregido mi URL .git/config. Acabo de copiar eso de la URL del clon HTTPS. Eso sería algo así:

url = https://github.com/*your*git*name*/*your*git*app*.git

Funcionó.


si escribí esto en mi archivo de configuración en Windows OS, el error surgió de manera diferente, decía ... "/c/Users/asus/.ssh/config: línea 5: opción de configuración incorrecta: url"
gumuruh

usar https sobre ssh funciona bien, pide nombre de usuario y contraseña
Kiran

4

Otra solución alternativa:

A veces esto me sucede debido a problemas de red. No entiendo completamente el problema raíz, pero cambiar a una subred diferente o usar VPN lo resuelve


Exactamente mi caso. Ojalá hubiera leído este comentario. Después de algunas horas de depuración, pensé en usar VPN y funcionó.
Chaitanya Bapat

4

Si usa Gitlab, es posible que deba iniciar sesión y aceptar nuevos términos de Gitlab, antes de intentar tirar o presionar.


¿Por qué el voto negativo? El mismo día resolví mi problema, tenía algo que ver con los nuevos términos de gitlab.
Marcelo Agimóvel

Por favor, elimine su voto negativo. Esta es una respuesta válida, sucede después de que cambian los términos de gitlab. Aceptar nuevos términos de gitlab podría resolver el problema.
Marcelo Agimóvel

3

En su archivo .git / config

[remote "YOUR_APP_NAME"]
    url = git@heroku.com:YOUR_APP_NAME.git
    fetch = +refs/heads/*:refs/remotes/YOUR_APP_NAME/*

Y simplemente

git push YOUR_APP_NAME master:master 

3

En mi caso, estaba usando una clave ssh con una contraseña para autenticarme con github. No había configurado el concurso correctamente en Windows (solo en cygwin). Los pasos que faltaban eran apuntar la variable de entorno git_ssh a plink.exe. Además, debe obtener github.com en el plink known_hosts.

   plink github.com
   y
   <then ctrl-c>

¡Espero que esto ayude!

Desearía que intellij me hubiera dado un error más útil, o mejor aún, me hubiera pedido que escriba la contraseña de la clave ssh.


3

Tenía una clave privada ssh incorrecta para Bitbucket junto con la correcta en el agente ssh.

Borrado todas las claves primero

ssh-add -D

Luego agregó la clave correcta.

ssh-add ~/.ssh/id_rsa

2

Para mi caso, estoy usando la red corporativa (sin conexión a Internet) en la oficina. Para extraer el código de github, configuro el proxy https en gitbash y luego uso https en lugar de ssh para extraer el código, funciona bien. Sin embargo, cuando se trata de código push, el proxy https no funcionará. Entonces, cambiar a la red de Internet (con conexión a Internet) o configurar el proxy ssh puede resolver el problema.


2

En realidad, intenté muchas cosas para que funcione en Win7, desde que cambié el exectun fron nativo de SSH a build-it y hacia atrás y el mismo error. Por casualidad, lo cambio a HTTPS en el archivo ".git / config" como:

[remote "origin"]
        url = https://github.com/user_name/repository_name.git
        fetch = +refs/heads/*:refs/remotes/origin/*

y finalmente funcionó. Entonces, tal vez podría funcionar para usted también.


2

Tuve el mismo problema y después de un tiempo vi que estaba bajo usuario root (con sudo -s). Que esto ayude a alguien.


Confirmo que incluso cuando haya configurado la clave ssh en su máquina y en el BitBucket, seguirá mostrando este error si intenta ejecutar 'git pull' con un comando 'sudo'.
ElectroBuddha

2

Si después del comando "git push origin master" ve el error "no se pudo leer desde el repositorio remoto", pruebe esto

1.ssh-keygen -t rsa -b 4096 -C "youremail"
2.eval $(ssh-agent -s)
3.ssh-add ~/.ssh/id_rsa
4.clip < ~/.ssh/id_rsa.pub(it copies the ssh key that has got generated)
5.then go to your remote repository on github and goto settings-> SSH and GPG keys ->new SSH key ->enter any title and paste the copied SSH key and save it
6. now give git push origin master 


1

Tuve el mismo error, lo que me llevó a esta respuesta que no me ayudó. Intenté crear un nuevo repositorio "desnudo" por primera vez usando los siguientes comandos para rastrear a una ubicación NTFS:

cd myrepository
git init --bare \\myserver.mycompany.local\myrepository.git
git init
git status
git add .
git status
git commit -m "Initial Commit"
git remote add origin \\myserver.mycompany.local\myrepository.git
git push -u origin master
git status

Mi problema resultó ser el uso de barras diagonales inversas en lugar de barras diagonales inversas en la ubicación NTFS al intentar agregar el origen para establecer la (nueva) rama ascendente rastreada.

Tuve que eliminar el origen usando:

git remote rm origin

Luego agregue el origen nuevamente usando las barras diagonales esperadas

git remote add origin //myserver.mycompany.local/myrepository.git

Espero que esto ayude a alguien en el futuro.


1

Tengo este error después de cambiar de computadora. Estoy usando SourceTree con Bitbucket.

Así que tuve que agregar la clave SSH generada por SourceTree, en la nueva computadora, en Configuración de Bitbucket> Seguridad> Claves SSH, mientras estaba conectado a mi cuenta de Bitbucket en la web.


1

Resolví este problema reiniciando el terminal (abra una nueva ventana / pestaña).

Entonces, si realmente no desea / necesita comprender el problema subyacente, vale la pena probar el método de prueba antes de profundizar :)


0

Para aquellos que tienen este problema en un repositorio remoto privado. asegúrese de haber aceptado el acuerdo de Xcode en el servidor remoto: nos llevó semanas descubrir esta solución

Use este comando desde la línea de comando: sudo xcodebuild -license


0

Solo quería compartir que encontré una solución fácil para eso:

Acceso denegado. fatal: no se pudo leer desde el repositorio remoto. Asegúrese de tener los derechos de acceso correctos y de que exista el repositorio.

simplemente cierre sesión en gitlab e inicie sesión nuevamente. Los problemas deberían ser reparados.


0

Cuando use masilla / concurso, asegúrese de no olvidarse de agregar la clave SSH correcta al concurso, de lo contrario, aparecerá este error. DUH



0

Vaya al terminal MINGW32 y ponga este comando: git branch --set-upstream-to = origin / (branch Name)


0

Si sigue obteniendo el mismo error, asegúrese de que en la configuración de git-> pestaña ssh-> cliente ssh a usar esté configurado para abrir SSHingrese la descripción de la imagen aquí


0

Según mi experiencia, una de las razones por las que se produjo este problema es porque tienes una conexión a Internet inestable .

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.