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

LDN
fuente
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
Quizás esto resolvería el problema: help.github.com/articles/connecting-to-github-with-ssh
Guy Avraham
Un problema relacionado: stackoverflow.com/questions/10127818/…
Anton Tarasenko
¿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
Rob Mayoff
fuente
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: [email protected]: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

Johnny Cage
fuente
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 = [email protected]: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 [email protected]

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.

Tombart
fuente
1
¡¡Gracias!! En algún momento cuando cloné mi repositorio, urlse configuró en https://github.com/user/repo.git(sin [email protected]) 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://[email protected]/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 = [email protected]:manishnakar/polymer-demo.git

Lo reemplacé con

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

y funciona ahora :)

Manish Nakar
fuente
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.

Scott Lindner
fuente
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

usuario3362907
fuente
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 "[email protected]"

  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
Bastin Robin
fuente
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 .

Pratik Patel
fuente
8

Después de investigar un poco, finalmente obtuve una solución para esto, ha declarado una variable de entorno a la ruta plink.exe. Entonces, si elimina esa ruta, vuelva a abrir el git bash e intente clonar a través de SSH, funcionará.

Consulte este enlace

http://sourceforge.net/p/forge/site-support/2959/#204c

Mohammed Nasiruddin
fuente
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ó.

tan75
fuente
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

kip2
fuente
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.

Marcelo Agimóvel
fuente
¿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 = [email protected]:YOUR_APP_NAME.git
    fetch = +refs/heads/*:refs/remotes/YOUR_APP_NAME/*

Y simplemente

git push YOUR_APP_NAME master:master 
usuario1982195
fuente
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.

Jeff Hoye
fuente
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
Para siempre
fuente
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.

wenwen
fuente
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.

Ignacio lucatero
fuente
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.

Jean-Luc Barat
fuente
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 
sushmitha
fuente
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.

Miguel
fuente
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.

eby
fuente
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 :)

mraxus
fuente
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

Joseph Bolade Caxton-Idowu
fuente
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.

nechama b
fuente
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

Triturar
fuente
0

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

Juned Ahmed
fuente
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í

Anil Kumar B
fuente
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 .

Marwan Salim
fuente