Error de Git: "Asegúrate de tener los derechos de acceso correctos y de que el repositorio existe"

97

Estoy usando TortoiseGit en Windows. Cuando intento Clonar desde el menú contextual del Explorador de Windows estándar, aparece este error:

Asegúrese de tener los derechos de acceso correctos y de que el repositorio existe

Más precisamente, la instantánea del terminal es la siguiente:

git.exe clon --progress -v "git @ arobotdev: \ git \ AlfaRobot.git" "C: \ Work \ AlfaRobot"

Clonación en 'C: \ Work \ AlfaRobot' ...
Permiso denegado, inténtelo de nuevo.
Permiso denegado, por favor, intente de nuevo.
Permiso denegado (clave pública, contraseña).
fatal: no se pudo leer desde el repositorio remoto.

Asegúrese de tener los derechos de acceso correctos
y de que el repositorio existe.

git no salió limpiamente (código de salida 128) (21450 ms @ 19.09.2014 10:36:58)

¿Qué debo hacer para que git funcione correctamente?

Alex
fuente
1
intente generar ssh keygen y agregue
Raja Simon
Usando Shell (o Git Bash en Windows) para crear la clave SSH:$ ssh-keygen -t rsa -C "[email protected]"
Belter
Tuve ese error después de cambiar los repositorios a las direcciones [email protected] por no tener que escribir la contraseña todo el tiempo. El verdadero error que lo causó fue olvidar agregar mi clave pública en github.
dasWesen

Respuestas:

76

Es posible que su URL de git haya cambiado. Cambie la URL en el directorio local usando el siguiente comando

git remote set-url origin git@yourGitUrlHere
Vishnu
fuente
17
FYI github ahora usa un esquema de URL:git remote set-url origin https://github.com/username/repository.git
RyPope
2
@RyPope puede usar cualquier protocolo, ya sea git (ssh) o https, es su deseo. github ahora tiene ambos protocolos gity https.
Vishnu
@Vishnu ¿Cuál es el XXXXXXX?
244boy
@RyPope Conviértalo en una respuesta
ishandutta2007
Yo cometí un error muy común. Copié usando el comando clip xclip -sel clip < ~/.ssh/id_rsa.pub, pero durante el pegado en el cuadro de entrada de la clave de github, eliminé la última línea nueva usando la tecla de retroceso, que en realidad cambió la clave pública. Por lo tanto, siempre copie y pegue la clave pública ssh tal como está sin eliminar la última línea nueva.
Amreesh Tyagi
62

Ese problema podría estar teniendo con su ssh-agent, su clave ssh no se ha agregado con ssh-agent. Debe aplicar los siguientes pasos usando su terminal: -

  1. $ eval "$ (ssh-agent -s)"

    Agente pid 5867

  2. $ ssh-add

    Ingrese la frase de contraseña para /home/you/.ssh/id_rsa: [] Identidad agregada: /home/you/.ssh/id_rsa (/home/you/.ssh/id_rsa)

entonces funcionará ... saludos J.

Onkar_M18
fuente
11
Sigue recibiendo un error al clonar:fatal: Could not read from remote repository.
IgorGanapolsky
Gracias, funcionó para mí, he creado una clave diferente a la id_rsa predeterminada, así que solo tengo que hacerlo adicionalmente en el comando anterior ssh-add -K ~ / .ssh / id_rsa_other_project.
Nitesh
Sí, esto no solucionará ningún problema en absoluto. Agregar su identidad a ssh solo detiene las cosas que solicitan su contraseña de
certificado
salud. No había podido correr brew update. cuando corrí ssh-addantes de ejecutar el comando, funcionó. Espero no tener que repetir esto todo el tiempo.
nyxee
todavía aparece el error "Error en la verificación de la clave del host. fatal: no se pudo leer desde el repositorio remoto". pero agregando un host conocido arreglado para mí: stackoverflow.com/questions/15214977/…
rickvian
36

Intente usar HTTPS en lugar de SSH mientras toma el clon de GIT, use esta URL para clonar, puede usar Gitbase, Android Studio o cualquier otra herramienta para clonar la rama. ingrese la descripción de la imagen aquí

Lovekush Vishwakarma
fuente
34

Para mí, fue porque no había una clave SSH en la máquina. Verifique la clave SSH localmente:

$ cat ~/.ssh/id_rsa.pub

Esta es tu clave SSH. Agréguelo a sus claves SSH en el repositorio.
En gitlab ve a

configuración de perfil -> Llaves SSH

y agrega la clave

Jacek Góraj
fuente
7
Agregué la clave como mencionaste y sigo recibiendo el mensaje de acceso denegado. Por favor ayuda
Jet
18

Github ahora usa un esquema de URL

git remote set-url origin https://github.com/username/repository.git

RyPope
fuente
9

Está intentando clonar el repositorio sobre ssh : git@arobotdev..., y sus claves SSH no están configuradas correctamente en el servidor. Hay varias razones para esto:

  1. Es posible que su clave pública no se guarde en el archivo Authorized_keys del usuario git
  2. Si 1 no es verdadero, su clave privada no se guarda en la carpeta .ssh / de su HOMEDIR.
  3. Los permisos no están configurados correctamente

Si los 3 anteriores son falsos, entonces mi única conclusión puede ser intentarlo: git@arobotdev:AlfaRobot.git Suponiendo que AlfaRobot.git esté en HOMEDIR del usuario git y no dentro de una carpeta llamada git que reside en HOMEDIR del usuario git.

Mudassir Razvi
fuente
5

El rsa.pub (es decir, la clave pública generada), debe agregarse en la página de github >> settings >> ssh keys. Compruebe que no ha agregado esta clave pública en la configuración del repositorio >> claves de implementación. Si es así, elimine la entrada de aquí y agregue al primer lugar mencionado.

Configuración de las claves públicas-privadas en detalle .

¡Funcionará por lo tanto!

parasrish
fuente
3
  1. Lo primero que puede querer confirmar es la conexión a Internet. Sin embargo, los problemas de Internet en su mayoría dirán que no se puede acceder al repositorio.

  2. Asegúrese de haber configurado ssh tanto localmente como en su github. Ver como

  3. Asegúrese de estar usando el control remoto ssh git. Si ha clonado el https, simplemente establezca la URL en la URL ssh, con este comando gitgit remote set-url origin [email protected]:your-username/your-repo-name.git

  4. Si ha configurado ssh correctamente pero simplemente dejó de funcionar, haga lo siguiente:

    • eval "$(ssh-agent -s)"
    • ssh-add

    Si aún tiene el problema, verifique que no haya eliminado el ssh de su github. En el caso de que el ssh se haya eliminado de github, puede volver a agregarlo. Úselo pbcopy < ~/.ssh/id_rsa.pubpara copiar la clave ssh y luego vaya a su configuración de github ssh y agréguela.

Te recomendaré que uses siempre ssh. Para la mayoría de los equipos con los que he trabajado, no puede acceder al repositorio (que en su mayoría son privados) excepto que usa ssh. Para un principiante, puede parecer más difícil, pero luego lo encontrará bastante más fácil y seguro.

Obinna Nnenanya
fuente
3

Tuve este problema y descubrí que mi sistema tenía una dirección DNS incorrecta. Verifique su red y pruebe con

ssh -vvv [email protected]

Y lea los mensajes de salida. Si ve "Puede usar git o hg para conectarse a Bitbucket". , todo está bien.

Albert
fuente
hola @ Albert, estoy enfrentando el mismo problema pero para gitlab.com. ¿Cómo se las arregló para solucionar el problema?
abiratsis
@AlexandrosBiratsis Reemplazo mi dns por otra dirección. Prueba opendns o google dns.
Albert
2

Un problema alternativo puede ser su conexión a Internet. Tal vez sea obvio, pero me tomó unos minutos descubrir que mi wifi no funcionaba :)

Boltzmann Cerebro
fuente
1
Según el mensaje de error, no parece que la conexión a Internet sea un problema aquí.
jbmusso
2

Así es como resuelvo este problema. Estaba usando Babun (mintty.exe) en Win7 / 10. Cuando he probado muchas de las soluciones mencionadas anteriormente, y ninguna de ellas funciona. Me di cuenta de que tal vez solo usé un agente ssh incorrecto ... Así que corro echo $GIT_SSHpara averiguarlo, muestra el camino hacia Plink.exe. Lo que realmente esperaba es OpenSSH.

Entonces, agrego la siguiente línea al ~/.zshrcarchivo

Nota 1: también puede ejecutarlo en babun directamente
Nota 2: si usa bash, el archivo de configuración es.bashrc

export GIT_SSH=$(which ssh)

¡Y funciona!

París Qian Sen
fuente
2

agregue estas líneas a su .get/configarchivo (gracias a @kovshenin answer Git Pull: Change Authentication ):

[credential]
    helper = wincred
Khaled AbuShqear
fuente
O ~ / .gitconfig
Marcos
2

Pruebe https en lugar de ssh. Elija la opción https de la página de inicio del proyecto donde copia la URL de clonación.

Vedha Peri
fuente
2

Si estaba funcionando antes y de repente dejó de funcionar:

Este problema puede deberse a que a veces ssh-agentno es persistente entre reinicios. Debe verificar si ssh-agentha agregado su clave:

ssh-add -l -E md5

si obtiene el resultado como:

The agent has no identities.

significa que ssh-agentha perdido su llave. En ese caso, simplemente debe agregar la clave de identidad nuevamente. Algo como:

ssh-add ~/.ssh/git_rsa

¡El error debería desaparecer ahora!

shivam
fuente
Esto me sucedió cuando creé otro ssh para una cuenta diferente, así que agregué lo que faltaba git_rsaa la lista
Juan
1

Esto también puede suceder si se está conectando a su repositorio de git a través de una VPN. Asegúrese de estar conectado a la VPN que se utiliza para acceder a los recursos de su organización.

John Doe
fuente
1

Me encuentro con este error al cargar el proyecto en gitlab. No cloné de git, sino que cargué el proyecto. Para enviar su código a gitlab, tiene dos formas de usar ssh o https. Si usa https, debe ingresar el nombre de usuario y la contraseña de la cuenta de gitlab. Para enviar su código a git, puede usar el siguiente.

Empujando a Git por primera vez

>$ cd
>$ mkdir .ssh;cd .ssh
>$ ssh-keygen -o -t rsa -b 4096 -C "[email protected]"

El parámetro -C es opcional, proporciona un comentario al final de su clave para distinguirlo de otros si tiene varios. Esto creará id_rsa (su clave privada) e id_rsa.pub (su clave pública). Pasamos nuestra clave pública y mantenemos nuestra clave privada, bueno, privada. La configuración de usuario de Gitlab es donde luego agregaría su clave pública a su cuenta , lo que nos permitirá finalmente presionar.

En la ubicación de su proyecto (directorio) use el siguiente comando

git init

Transforma el directorio actual en un repositorio Git. Esto agrega un subdirectorio .git al directorio actual y hace posible comenzar a registrar revisiones del proyecto.

Empuje usando la ruta https

git push --set-upstream https://gitlab.com/Account_User_Name/Your_Project_Name.git master

Empuje usando la ruta ssh

git push --set-upstream [email protected]:Account_User_Name/Your_project_Name.git master

- set-upstream: le dice a git la ruta al origen. Si Git ha empujado previamente en su rama actual, recordará dónde está el origen

master : este es el nombre de la rama a la que quiero empujar al inicializar

Gurjinder Singh
fuente
0

Como otras respuestas, usar en httpslugar de sshfue la solución.

Publico una respuesta para dar un ejemplo concreto de una posible solución. Resolví este problema con bitbucket cuando cambié la URL remota a HTTPS con esta línea de comando:

git remote set-url origin <bitbucket_URL>

Después de eso, podría enviar el contenido al repositorio con este comando:

git push -u origin --all

Y luego también podría usar Sourcetree

Sébastien Gicquel
fuente
0

Curiosamente, solo recibí este error en 1 de mis muchos repositorios.

Mi problema fue después de instalar el nuevo GitHub Desktop para Windows donde el antiguo GitHub for Win guardaba las claves ~/.ssh/github_rsay ~/.ssh/github_rsa.pubdonde, como el nuevo GitHub for Win lo esperaba, ~/.ssh/id_rsala solución simplemente cambiaba el nombre de las claves públicas y privadas existentes:

~/.ssh/github_rsa -> ~/.ssh/id_rsa
~/.ssh/github_rsa.pub -> ~/.ssh/id_rsa.pub

Después de lo cual, permítame acceder al repositorio nuevamente sin problemas.

mito
fuente
0

use su origen https en lugar de ssh url

ejemplo:

git remote add origin  https://gitlab.com/user/folder.git
poco stilo
fuente
0

Estoy usando Ubuntu

después de leer muchas de las respuestas, ninguna de ellas puede resolver el problema, incluso si ya agregué la clave SSH a mi cuenta de git, e intenté probarla usando ssh -T [email protected]y decía Welcome <my username>, pero aún me decía que no tengo derechos de acceso. Entonces encontré que la razón es:

Normalmente, si no es un rootusuario, deberá ejecutar con sudocada comando de git.

cuando se ejecuta sudo git clone <SSH....>(por ejemplo). se ejecutará con rootpermiso, pero accidentalmente cuando creo la clave SSH, la ejecuto como usuario normal y guardo la clave ~/.ssh/id_rsa, resuelve la ruta absoluta /home/username/.ssh/id_rsa. Y al hacerlo sudo git clone ...busca clave SSH en/root/.ssh/id_rsa

Por qué puedo estar seguro de esto. Para ver dónde busca git tu clave SSH. Ejecutar este comando: sudo GIT_TRACE=1 GIT_SSH_COMMAND="ssh -vvv" git clone <your repository in SSH>. Le mostrará dónde busca su clave SSH.

Entonces la SOLUCIÓN que sugiero es:

Recreando su clave SSH (siga estas instrucciones ), PERO ejecute sudo suen el primer paso, entonces estará bien.

Duc Trung Mai
fuente
0

Agregar la clave ssh funcionó para mí. Puede crear una clave ssh con el comando ssh-keygen en mac. Debería poder ver el menú Implementar claves en YourRepository> Configuración; no olvide marcar la opción Permitir acceso de escritura.

desplegar la captura de pantalla del menú de claves

tlrmacl
fuente
0

Yo cometí un error muy común. Copié usando el comando clip xclip -sel clip < ~/.ssh/id_rsa.pub, pero durante el pegado en el cuadro de entrada de la clave de github, eliminé la última línea nueva usando la tecla de retroceso, que en realidad cambió la clave pública.

Por lo tanto, siempre copie y pegue la clave pública ssh tal como está sin eliminar la última línea nueva.

Amreesh Tyagi
fuente
0

Para mí, estaba teniendo problemas con la VPN de la empresa, después de desconectarme funcionaba bien.

Verifique la conexión con github usando el comando ssh -vvvT [email protected]

rana_stack
fuente
0

El cambio al uso de https funciona. Primero cambie a https en lugar de claves ssh. origen de la URL del conjunto remoto de git

Luego solicitará el nombre de usuario y la contraseña de git.

Stephen Mwangi Wanjohi
fuente